Как часть обучения ruby / rails, я пытаюсь реализовать http://github.com/professionalnerd/simple-private-messages в своем приложении с нуля, вместо того, чтобы просто устанавливать плагин. (Я знаю, что вызвало у меня проблемы, но это хороший опыт обучения.)Методы запроса в ruby on rails - неопределенный метод `read 'для
Я создал модель, и ассоциации выглядят нормально, и я могу создавать новые сообщения в порядке, и они отображаются в почтовом ящике получателей. Но если я нажму для просмотра одного сообщения (вызывает метод show в контроллере сообщений), он отправляется на поиски метода, называемого «читать», например.
undefined method `read' for #<Class:0xb6f9ef78>
Где я должен поместить метод «читать». В private_messages_extensions.rb (исходный плагин) имеет:
module ClassMethods
# Ensures the passed user is either the sender or the recipient then returns the message.
# If the reader is the recipient and the message has yet not been read, it marks the read_at timestamp.
def read(id, reader)
message = find(id, :conditions => ["sender_id = ? OR recipient_id = ?", reader, reader])
if message.read_at.nil? && reader == message.recipient
message.read_at = Time.now
message.save!
end
message
end
end
module InstanceMethods
# Returns true or false value based on whether the a message has been read by it's recipient.
def read?
self.read_at.nil? ? false : true
end
Какова взаимосвязь между методами класса и методов, например, в отношении вставки непосредственно в мой собственный контроллер сообщений & модели? Я думал, что вставил
def read(id, reader)
...
end
в модель, но прочитал? метод в разделе методов методов кода плагина меня сбивает с толку, и я продолжаю получать ошибку при просмотре сообщения.
Помогите оценить!
Спасибо за очень тщательный ответ! – Dave