次のような関係を持つモデルがいくつかあります。
App.User = DS.Model.extend
favorite_articles: DS.hasMany('App.FavoriteArticle')
hella_favorite_articles: DS.hasMany('App.HellaFavoriteArticle')
App.FavoriteArticle = DS.Model.extend
user: DS.belongsTo('App.User')
article: DS.belongsTo('App.Article')
starred: DS.attr('boolean')
App.HellaFavoriteArticle = DS.Model.extend
user: DS.belongsTo('App.User')
article: DS.belongsTo('App.Article')
starred: DS.attr('boolean')
App.Article = DS.Model.extend
favorite_article: belongsTo('App.Article')
hella_favorite_article: belongsTo('App.Article')
これが何が起こっているかです。特定のビューのすべてのモデルをサイドロードするとします。そして、そのビューには、HellaFavoriteArticle にスターを付けるアクションがあります (これがばかげていることはわかっています)。
これらすべてを接続してアクションをクリックすると、Ember は「/hella_favorite」エンドポイントと「/favorite」エンドポイントの両方に対して PUT を開始します。
これはなぜでしょうか?そうならないほうがいいと思いますし、実際にはエラーを引き起こしているのではないかと思いますが、まだ確認できていません。ただし、HellaFavoriteArticle モデルから Article への関係を削除すると、Ember が両方のエンドポイントへのリクエストを送信しなくなることがわかりました。したがって、これにより、Ember が共有関係に基づいて両方のモデルを更新することを「決定」したと推測されました。
これはかなり狡猾な魔法である一方で、これを無効にする方法がわかりません。
ティア!