我想显示用户发送的消息。问题是草稿和发送的消息内容存储在同一个表中,所以我想对user.rb
has_many :sent_messages, :class_name => "Message", :foreign_key => "user_id", :conditions => [#it has been sent!]
我想过使用message.rb
def is_sent
current_user.drafts.find_by_message_id(:first, self.id).empty?
end
如何在我的关联:condition
中调用此方法?
是否最好在我的Message表中使用一个列来指定是否已发送存储的消息?
谢谢!
答案 0 :(得分:1)
我会向sent
添加一个布尔Message
列,并在has_many
中使用此条件:
:conditions => { :sent => true }
这也会在sent?
中为您提供Message
功能,从而取消is_sent
功能。请注意,在Ruby中使用函数名称中的问号是常见的做法,is_
不赞成。