2011-09-29 34 views
0

我想显示用户发送的消息。问题是草稿和发送的消息内容被存储在相同的表,所以我想把一个条件在以下关联从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 

以为使用is_sent方法的我怎样才能在我的协会的:condition中调用这个方法? 是否最好在我的消息表中使用一列指定存储的消息是否已发送?

谢谢!

回答

1

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

:conditions => { :sent => true } 

这也将使你的功能sent?Message,免除了您is_sent功能。请注意,在Ruby中的函数名称中使用类似的问号是很常见的做法,并且is_令人不悦。

+0

谢谢! ,,,,, – Arthur