1
我試圖在Ember中實現一個多才多藝的關係系統。我的模型是:Ember-數據與多對多關係的奇怪行爲
App.User = DS.Model.extend
name: DS.attr('string')
friendships: DS.hasMany('friendship', { inverse: 'user' })
App.Friendship = DS.Model.extend
user: DS.belongsTo('user')
friend: DS.belongsTo('user')
在我的用戶控制,我有一個addFriend
動作,看起來大致是這樣的(我有從其他地方定義currentUser
):
App.UserController = Ember.ObjectController.extend
actions:
addFriend: ->
friendship = @get('store').createRecord('friendship',
user: @get('currentUser')
friend: @get('model')
)
@get('currentUser.friendships').pushObject(friendship)
從調試語句,它似乎像friendship
記錄正被推入friendships
陣列BOTHcurrentUser
和用戶代表model
。我不希望發生這種情況,因爲對於雙向交友系統,model.friendship
陣列應該包含friendship
的倒數,即交換用戶和好友。當然,如果Ember有辦法自動執行此操作,那將會很好,但我也很樂意手動執行此操作。
現在,爲什麼pushObject
方法將相同的friendship
記錄推送到兩個用戶記錄中?我想這可能與模型中定義逆向的方式有關。我嘗試更改爲inverse: null
,但這並未解決問題。引發這種行爲的引擎數據引發了什麼?或者我的代碼中有一個我沒有看到的錯誤?任何方式擺脫這種行爲將非常感激!