вызвать функцию для: условия в ассоциации - PullRequest
0 голосов
/ 29 сентября 2011

Я хочу отображать отправленные сообщения пользователем.Проблема в том, что черновики и содержимое отправленных сообщений хранятся в одной и той же таблице, поэтому я хочу поставить условие для следующей ассоциации из user.rb

has_many :sent_messages, :class_name => "Message", :foreign_key => "user_id",  :conditions => [#it has been sent!]

Я думал об использовании метода is_sent из message.rb

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

Как я могу вызвать этот метод в :condition моей ассоциации?Было бы предпочтительнее использовать столбец в моей таблице сообщений, указывающий, было ли сохраненное сообщение отправлено или нет?

Спасибо!

1 Ответ

1 голос
/ 30 сентября 2011

Я бы добавил логический sent столбец к Message и использовал бы это условие в has_many:

:conditions => { :sent => true }

Это также даст вам функцию sent? в Message, исключая вашу is_sent функцию.Обратите внимание, что использование знака вопроса, подобного этому, в именах функций в Ruby является обычной практикой, и is_ осуждается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...