1

在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。我猜我需要告诉烬数据friends阵列实际上是User记录数组,但如果friends: DS.hasMany('user')不这样做,那么我不知道如何。如何正确加载这个数据结构到烬中?

回答

1

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

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

感谢您的答复!这似乎是在JSON中装载一个'users'数组,对应'user'对象中的'friend_ids'。它看起来像烬数据正确阅读这个,但我需要更彻底地测试它。我很好奇如果我需要加载两个不同的用户数组,例如':friends'和':followers',这将如何工作?我不能有两个名为'users'的数组,我可以吗? – xph