我在Mailboxer::Conversation中添加了一种方法来检索链接,使用mailboxer的电子邮件来回复(即reply_link)。
我已经决定在我的应用程序中使用猴子补丁邮箱。我所做的正是以下几点:
lib/mailboxer/extensions。lib/mailboxer/extensions/conversation.rb,lib/mailboxer/extensions.rb,lib/mailboxer.rb。以下是文件的内容:
# lib/mailboxer/extensions/conversation.rb
module Mailboxer
module Extensions
module Conversation
def reply_link
"/mail?notif_id=#{id}"
end
end
end
end
# lib/mailboxer/extensions.rb
require 'mailboxer/extensions/conversation'
# lib/mailboxer.rb
require 'mailboxer/extensions'我的config/application.rb有以下内容:
config.autoload_paths += %W(#{config.root}/lib)
这让我可以访问lib文件夹。然后,我所做的就是将Mailboxer::Extensions::Conversation到Mailboxer::Conversation包含在邮箱初始化器文件initalizers/mailboxer.rb中。
Mailboxer.setup do |config|
# ...
end
Mailboxer::Conversation.include Mailboxer::Extensions::Conversation在我的rails console中,代码总是工作的。然而,在网站中,reply_link方法首先起作用,然后变得不确定。

几次尝试之后..。

直到我重新启动服务器..。
每当我得到一个不相关的异常(例如,错误、重构等)reply_link方法变为未定义。这会是一种发展吗?
我可以分叉邮件拳击手,做我的改变,然后继续。但是这个方法对我的应用程序是如此的自定义,所以我宁愿只进行修补。
如果有人有任何建议、建议或问题,我真的很感激。
发布于 2016-05-18 14:03:34
首先,我仍然相信这只是一个发展问题。每当我有空闲的时间,我会测试这个,并在这里张贴。
其次,为了确保再也不会发生这种情况,我复制了Mailboxer对话的源代码,并添加了一个包含include MailboxerExt::Conversation。
我还构造了我的扩展以不碰撞,重新加载Mailboxer的命名空间。
最后的结果是文件夹app/models/mailboxer,lib/mailboxer_ext。
这些文件是app/models/mailboxer/conversation.rb、lib/mailboxer_ext.rb和lib/mailboxer_ext/conversation.rb。
https://stackoverflow.com/questions/37148992
复制相似问题