我有一个Transaction
模型。一个事务有一个seller_id
列和一个buyer_id
. 两者都充满了User
ID。
所以:
class Transaction
belongs_to :seller, :class_name => 'User'
belongs_to :buyer, :class_name => 'User'
end
_
class User
has_many :selling_transactions, :class_name => 'Transaction', :foreign_key => 'seller_id'
has_many :buying_transactions, :class_name => 'Transaction', :foreign_key => 'buyer_id'
end
我想要做的是添加一个has_many
以User
关联不完整的交易,无论User
是卖方还是买方。
class User
has_many :incomplete_transactions, :class_name => 'Transaction', :conditions => ???
end
_
我用纯 SQL 写出来,得到了我想要的结果。我的 SQL 中的联接是:
left outer join transactions t on ((t.seller_id = users.id and t.buyer_id is NULL) or (t.buyer_id = users.id and t.seller_id is NULL))
我如何将其join
转化为has_many
关联?
编辑:
我希望将不完整事务保留为 ActiveRecord::Relation (而不是数组),因此我可以执行类似 user.incomplete_transactions.limit(15) 的操作
谢谢。