我試圖在我的網站上實現一個朋友系統,並剛剛完成自我參照關聯(http://railscasts.com/episodes/163-self-referential-association)上的一個railscast(#163)。在視頻中的某一點,他與inverse_friendships
表創建了一個新的關係,但我從來沒有看到他生成inverse_friendships
模型或遷移。 inverse_
是否與鐵軌魔術有關,還是我錯過了什麼?Rails:「inverse_friendships」從哪裏來?
型號/ 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
哦......這只是爲了讓反向關係(戀愛的人可以訪問戀人的人)也可以訪問嗎? – Edmund
是的。這就是「自我指涉」的意思。該模型與自身相關聯。 – meagar