0

次のような関係を持つモデルがいくつかあります。

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 が共有関係に基づいて両方のモデルを更新することを「決定」したと推測されました。

これはかなり狡猾な魔法である一方で、これを無効にする方法がわかりません。

ティア!

4

0 に答える 0