【发布时间】:2010-10-25 08:39:54
【问题描述】:
我正在尝试建立用户之间的关系模型。用户可以发起关系,也可以从另一个用户接收关系。因此,db中的关系表有外键“initiator_id”和“recipient_id”。
现在,我可以使用以下关联来计算用户发起或接收的关系:
has_many :initiated_relations, :foreign_key => :initiator_id, :class_name => 'Relation', :dependent => :destroy
has_many :received_relations, :foreign_key => :recipient_id, :class_name => 'Relation', :dependent => :destroy
我想要做的是建立一个关联,它将获取属于用户的所有关系(无论是发起的还是接收的)。尝试以下不起作用,并抱怨缺少“user_id”字段:
has_many :relations, :conditions => 'recipient_id = #{id} or initiator_id = #{id}'
如何创建仅基于条件字段的关联,而不查找默认的foreign_key?或者是否有完全不同的方法来解决这个问题?
【问题讨论】:
标签: ruby-on-rails activerecord associations