を含める:エンバーJS:カスタマイズアダプター私は現在、2つのオブジェクトを使用してデータベースを持っている複数のパラメータ
- 役割
- 許可
ONE役割は、多くの権限を持つことができます。許可が役割に追加されたとき、それはこの要求を生成し、デフォルトでは
export default DS.RESTAdapter.extend(DataAdapterMixin, {
namespace: 'v1',
host: ENV.APP.API_HOST,
authorizer: 'authorizer:application',
pathForType: function(type) {
return 'staff/roles';
}
});
:私は現在としての私の役割アダプタを設定している
要求:
PUT /v1/staff/roles/1
ボディ:
を{
"name": "name_of_role"
"permissions": [
{
"id": "3",
"name": "name_of_permission"
},
...
]
}
アダプタをカスタマイズして、次のようなリクエストを生成したいと考えています。
要求:
PUT /v1/staff/roles/1/permissions/3
ボディ:
<None>
誰かが、私はこれをやって行くことができる方法を教えていただけますか? Ember JSに対応するためにサーバーAPIを更新することは、残念なことにオプションではありません。
UPDATE:ライアンの応答に基づいて
、ここに私のためのトリックをした(私はそれを呼び出すよ乱雑)の回避策です。
これは、よりエレガント作るための提案を開い:
export default DS.RESTAdapter.extend(DataAdapterMixin, {
namespace: 'v1',
host: ENV.APP.API_HOST,
authorizer: 'authorizer:application',
pathForType: function(type) {
return 'staff/roles';
},
updateRecord: function(embestore, type, snapshot) {
var roleID = snapshot.id;
var permissionID = snapshot.adapterOptions.permissionID;
var url = ENV.APP.API_HOST + "/v1/staff/roles/" + roleID + "/permissions/" + permissionID;
return new Ember.RSVP.Promise(function(resolve, reject){
Ember.$.ajax({
type: 'PUT',
url: url,
headers: {'Authorization': 'OAUTH_TOKEN'},
dataType: 'json',
}).then(function(data) {
Ember.run(null, resolve, data);
}, function(jqXHR) {
jqXHR.then = null; // tame jQuery's ill mannered promises
Ember.run(null, reject, jqXHR);
});
});
},
});
大変お手数ですが@ryan。使用されたソリューションで私の答えにアップデートを追加します。あなたの方向にかなり近づいた。 – unicornherder