Add a foreign record (e.g. a comment) to one of this record's collection associations (e.g. "comments").
POST /:model/:id/:association/:fk
This action pushes a reference to some other record (the "foreign" record) onto a collection attribute of this record (the "primary" record).
:fk
of an existing foreign record is supplied, it will be associated with the primary record.:fk
is supplied, and the body of the POST contains values for a new record, that record will be created and associated with the primary record.Parameter | Type | Details |
---|---|---|
model | The identity of the containing model for the parent record. e.g. 'employee' (in /employee/7/involvedinPurchases/47 ) |
|
id | The desired target record's primary key value e.g. '7' (in /employee/7/involvedInPurchases/47 ) |
|
association | The name of the collection association e.g. 'involvedInPurchases' |
|
fk | The primary key (e.g. id ) of the foreign record to add to this collection association.e.g. 47 |
|
callback | If specified, a JSONP response will be sent (instead of JSON). This is the name of the client-side javascript function to call, passing results as the first (and only) argument e.g. ?callback=myJSONPHandlerFn |
Add purchase #47 to the list of purchases that Dolly (employee #7) has been involved in:
POST /employee/7/involvedInPurchases/47
This returns "Dolly", the parent record. Notice she is now involved in purchase #47:
{
"id": 7,
"createdAt": "2014-08-03T01:16:35.440Z",
"name": "Dolly",
"updatedAt": "2014-08-03T01:51:41.567Z",
"involvedInPurchases": [
{
"amount": 10000,
"createdAt": "2014-08-03T01:50:33.898Z",
"updatedAt": "2014-08-03T01:51:08.227Z",
"id": 47,
"cashier": 7
}
]
}
$.post('/employee/7/involvedInPurchases/47', function (purchases) {
console.log(purchases);
});
$http.post('/employee/7/involvedInPurchases/47')
.then(function (purchases) {
console.log(purchases);
});
io.socket.post('/employee/7/involvedInPurchases/47', function (purchases) {
console.log(purchases);
});
curl http://localhost:1337/employee/7/involvedInPurchases/47 -X "POST"
- If you'd like to spend some more time with Dolly, a more detailed walkthrough related to the example above is available here.
- This action is for dealing with plural ("collection") associations. If you want to set or unset a singular ("model") association, just use update and set the model association to the id of the new foreign record (or
null
to clear the association).The example above assumes "rest" blueprints are enabled, and that your project contains at least an 'Employee' model with association:
involvedInPurchases: {collection: 'Purchase', via: 'cashier'}
as well as aPurchase
model with association:cashier: {model: 'Employee'}
. You'll also need at least an emptyPurchaseController
andEmployeeController
. You can quickly achieve this by running:$ sails new foo $ cd foo $ sails generate api purchase $ sails generate api employee
...then editing
api/models/Purchase.js
andapi/models/Employee.js
.