2015-12-07 47 views
0

我有以下表定製包括在軌協會

用戶

USER_ID,名字,姓氏

關係

USER_ID,spouse_id

我想運行下面的查詢person = Relationships.includes(:person).where(:name =>'David')

但我不希望相關人員被user_id關聯。我寧願它只與這個特定的查詢關聯,只有spouse_id

+0

看看這個[示例](http://railscasts.com/episodes/163-self-referential-association?view=asciicast) – lusketeer

+0

你可以提供模型名稱,因爲我可以看到有一些缺失,在這裏你定義了用戶,關係人怎麼樣?你有用戶和人2模型? – Arvind

回答

2

Rails完全允許多個關聯到同一個表,只要他們使用不同的外鍵。

在這種情況下,你有這樣的事情:然後

class User 
    has_many :relationships 
    has_many :spouses, class_name: "Relationship", foreign_key: :spouse_id 
end 

User.first.spouses將所有的關係,其中用戶的ID存在於spouse_id領域的集合。