2011-09-29 75 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