我正在尝试在我的网站上实现一个朋友系统,并且刚刚完成了关于自我引用关联的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
答案 0 :(得分:2)
没有这样的表格。 :class_name => "Friendship"
表示它正在使用Friendship
模型,该模型使用friendships
表。