我想扩展会话模型,这样我就可以使用关联了。我已经这样做了,在app/models目录中创建了一个名为'conversation.rb‘的文件,方法如下:
Mailboxer::Conversation.class_eval do
belongs_to :device, class_name: "Device", foreign_key: 'device_id'
end我还在conversations表中添加了一个名为'device_id‘的列。
但当我尝试时:
Conversation.last.device它说:
NoMethodError: undefined method `device' for #<Mailboxer::Conversation:0x007fe83e6ae7c0>发布于 2015-02-26 15:48:29
问题是如果调用Mailboxer::Conversation,app/models/conversation.rb将不会被加载。我把你的代码移到了config/initializers/mailboxer.rb上,为自己做了这件事。此外,我将代码包装在Rails.application.config.to_prepare中,因为在开发模式下,此代码必须在重新加载时重新执行(请参阅Monkey patching Devise (or any Rails gem)):
Mailboxer.setup do |config|
[...]
end
Rails.application.config.to_prepare do
Mailboxer::Conversation.class_eval do
belongs_to :device
end
end这样,像current_user.mailbox.conversations.first.device这样的东西应该是可能的。
发布于 2014-07-30 23:47:53
您可以尝试从它继承
class Conversation < Mailboxer::Conversation
belongs_to :device, class_name: "Device", foreign_key: 'device_id'
endhttps://stackoverflow.com/questions/24653237
复制相似问题