0
我嘗試實現一個簡單的應用程序,我擁有用戶,並從社交網絡獲取用戶友誼。我有兩個型號,下面列:Ruby on rails:與非ID鍵上的多列相關聯
User
:
id
(默認ID)sn_id
(從社交網絡中的用戶ID)
FriendsRelation
:
user1_sn_id
(外鍵User.sn_id
)user2_sn_id
(外鍵User.sn_id
)
如何實現關聯?
現在我寫上的用戶:
has_many :friends1, :class_name =>"FriendsRelation", :foreign_key =>"user1_sn_id"
has_many :friends2, :class_name =>"FriendsRelation", :foreign_key =>"user2_sn_id"
的問題是,如果我想獲得一個用戶的所有朋友,我不得不使用u.friends1
和u.friends2
但我如何擺脫dissymetry的?
我應該把什麼協會放在FriendsRelation上?
此外,FriendsRelation表中的用戶ID是來自社交網絡的用戶ID,因爲它對我來說更容易。這是個問題嗎?我應該把用戶ID呢?
好吧,但如何指定關係,以便它使用sn_id而不是od?我不能這樣做:'has_many:friends1,:class_name =>「FriendsRelation」,:foreign_key =>「user1_sn_id」,:key =>「sn_id」' –
使用':association_foreign_key =>「sn_id」 – Matzi