我知道关于这个问题有很多问题,但我认为我的情况有点不同。
使用rails 2.3.8
我有两个模型,User和Message。
表消息包含sender_id和recipient_id列以及两个引用用户表。我可以这样做:
class User < ActiveRecord::Base
has_many :messages_as_sender, :class_name => 'Message', :foreign_key => 'sender_id'
has_many :messages_as_recipient, :class_name => 'Message', :foreign_key => 'recipient_id'
def messages
messages_as_sender + messages_as_recipient
end
end
在大多数情况下,它可能就够了,但如果我想这样做会怎么样:
user.messages.all(:limit => 10)
or
user.messages.all(:conditions => "some condition")
Rails为此提供了一些东西?
更新
我希望有一些更清楚的东西但我最终会像gayavat所说的那样感谢
答案 0 :(得分:2)
类似的东西:
def self.messages
Messages.all(:conditions => ["sender_id = ? OR recipient_id = ?", self.id, self.id])
end