我正在使用facebook api从fb中获取用户。
我想将用户存储在我的模型User
我使用has many through
关系来存储用户
我的user
模型中的用户模型关系。
has_many :friends, :through => :user_friends, :class_name => "User", :foreign_key => "friend_id"
User friends
模型中间表,用于获取用户的朋友。
belongs_to :user
belongs_to :user, :foreign_key => "friend_id"
用户朋友有user_id
和friend_id
列我在迁移中添加了这些列。
我在用户对象上使用.friends
时出错。
ActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the association :user_friends in model User
任何人都可以帮忙吗? 提前谢谢。
答案 0 :(得分:5)
您需要检查Self-Referential Association。显然你缺少一些概念。您不能在单个模型中添加具有相同名称的2个关联(只有其中一个会响应)。
您应该添加has_many :user_friends
,但您仍然会遗漏该关联的另一面,请查看此示例:
# user.rb
has_many :user_friends
has_many :friends, :through => :user_friends
has_many :inverse_friendships, :class_name => "UserFriend", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_friendships, :source => :user
# user_friends.rb
belongs_to :user
belongs_to :friend, :class_name => "User"
答案 1 :(得分:1)
在has_many :user_friends
行
has_many :through
答案 2 :(得分:1)
试试这个:
用户模型:
has_many :user_friends
has_many :friends, :through => :user_friends, :class_name => "User", :foreign_key => "friend_id"
朋友模特:
has_many :user_friends
has_many :users, through: :user_friends
用户好友模型
belongs_to :user
belongs_to :friend, :foreign_key => "friend_id"