调用函数:关联条件

时间:2011-09-29 16:40:35

标签: ruby-on-rails

我想显示用户发送的消息。问题是草稿和发送的消息内容存储在同一个表中,所以我想对user.rb

中的以下关联设置一个条件
has_many :sent_messages, :class_name => "Message", :foreign_key => "user_id",  :conditions => [#it has been sent!]

我想过使用message.rb

中的is_sent方法
def is_sent
    current_user.drafts.find_by_message_id(:first, self.id).empty?
end

如何在我的关联:condition中调用此方法? 是否最好在我的Message表中使用一个列来指定是否已发送存储的消息?

谢谢!

1 个答案:

答案 0 :(得分:1)

我会向sent添加一个布尔Message列,并在has_many中使用此条件:

:conditions => { :sent => true }

这也会在sent?中为您提供Message功能,从而取消is_sent功能。请注意,在Ruby中使用函数名称中的问号是常见的做法,is_不赞成。