【发布时间】:2014-01-18 18:24:07
【问题描述】:
我正在使用 Facebook-Omniauth gem 将人们连接到我的应用程序。我可以看到当一个新用户登录时,它会在我的数据库中创建一个新的用户记录。我的应用程序应该将用户连接到他们的朋友和他们的事件......但它只是将用户连接到所有朋友(人)和数据库中的所有事件。
在 User.rb 中:
has_many :people
has_many :people,
:through => :friends
在 Person.rb 中:
has_many :users,
:through => :friends
在 Friend.rb 中:
belongs_to :person
belongs_to :users
通过 Omniauth 进行身份验证后,我会遍历用户拥有的所有朋友,并尝试将他们添加为用户的朋友,如下所示:
self.people << @new_person
但 ActiveRecord 回喊以下内容:
[3] pry(#<User>)> self.people << @new_person
ActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the association :friends in model User
[4] pry(#<User>)> self.friends << @new_person
NoMethodError: undefined method `friends' for #<User:0x007f9b816850f0>
我错过了什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 associations omniauth model-associations