[英]Rails many-to-many same class bi-directional relationship.. how?
所以这笔交易..我正在编写一个Rails应用程序来管理联系人数据。
我有一个联系人模型,该联系人需要有许多家庭成员(仍然是联系人类)..该关系需要关联的关系数据..即
ContactA | ContactB | Relationship
1 2 Contact A is Contact B's Father
我如何关联同一个类的2个对象并附加一些数据,并能够像这样双向遍历te关系:
@guy1 = Contact.find(1) #Guy A
@guy1.family_relationships
>>> [[guyb, "f"], [guyc, "s"]]
@guy2 = @guy1.family_members.first
@guy1.family_members
>>> [[guya]]
那可能不是100%正确的,但是它的后期和我整天都在与服务器争斗,所以请原谅我!
我听说您必须使用各种hacky SQL来执行此操作。
谢谢!
丹尼尔
我之前的一个项目中也遇到过类似情况。 我采用以下设计:
class Patient < AR::Base
has_many :relatives, :dependent => :destroy do
def husband
select { |r| r.relation.eql?('Husband').first
end
def father
select { |r| r.relation.eql?('Father').first
end
...
def sons
select { |r| r.relation.eql?('Son')
end
...
end
end
class Relative < AR::Base
belongs_to :patient
validates :relation,
:inclusion => {
:in => %w( Husband Daughter Son Father Mother Brother Sister )
}
end
这对我有用。 希望这可以帮助您或至少为您指明正确的方向!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.