Rails:“inverse_friendships”来自哪里?

时间:2012-10-05 16:19:20

标签: ruby-on-rails

我正在尝试在我的网站上实现一个朋友系统,并且刚刚完成了关于自我引用关联的railscast(#163)(http://railscasts.com/episodes/163-self-referential-association)。在视频中的某个时刻,他与inverse_friendships表创建了一个新关系,但我从未看到他生成inverse_friendships模型或迁移。 inverse_是否与rails魔法有关,还是我错过了什么?

models / user.rb

has_many :friendships
has_many :friends, :through => :friendships
has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_friendships, :source => :user

此外,他从哪里获得friends列?当他为friendship生成脚手架时,他创建了两列user_id:integer friend_id:integer但在实际的朋友桌上没有任何内容。

生成脚手架

script/generate nifty_scaffold friendship user_id:integer friend_id:integer create destroy rake db:migrate

1 个答案:

答案 0 :(得分:2)

没有这样的表格。 :class_name => "Friendship"表示它正在使用Friendship模型,该模型使用friendships表。