ember-data中的自引用关系(用户的朋友)

时间:2014-01-13 06:17:07

标签: ember.js ruby-on-rails-4 ember-data active-model-serializers

在Rails 4.0后端,我有以下内容:

class User < ActiveRecord::Base
  has_many :friendships, dependent: :destroy
  has_many :friends, through: :friendships

class Friendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, class_name: User
end

我想将用户的好友列表传递给JSON,所以我写了一个序列化器:

class UserSerializer < ActiveModel::Serializer
  embed :ids, include: true
  has_many :friends, include: true

在余烬方面,我正在尝试使用以下User模型加载JSON:

Nektere.User = DS.Model.extend
  friends: DS.hasMany('user')

但这给了我一个错误

Assertion failed: No model was found for 'friend'
Uncaught TypeError: Cannot set property 'typeKey' of undefined 

它要求我提供Friend模型,但FriendUser。我猜我需要告诉ember-data friends数组实际上是User个数组的记录,但如果friends: DS.hasMany('user')没有这样做,那么我不知道怎么样。如何将此数据结构正确加载到ember中?

1 个答案:

答案 0 :(得分:1)

在AMS中你可以指定根,在你的情况下你的朋友关系的根将是用户,这样的事情应该工作

has_many :friends, include: true, root: :users