RoR Mailboxer Monkey Patch 只工作了几次
RoR Mailboxer Monkey Patch works only a few times
我正在向 Mailboxer::Conversation
添加一个方法来检索 link 使用邮箱的电子邮件回复(即 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 文件夹。
然后我做的是在邮箱初始化文件 initalizers/mailboxer.rb
:
中包含 Mailboxer::Extensions::Conversation
到 Mailboxer::Conversation
Mailboxer.setup do |config|
# ...
end
Mailboxer::Conversation.include Mailboxer::Extensions::Conversation
在我的 rails console
中,代码始终有效。然而在网站中,reply_link
方法首先有效,然后随机变为未定义。
稍后尝试几次....
它停止工作,直到我重新启动服务器...
每当我遇到不相关的异常(即拼写错误、重构等)时,reply_link
方法就会变得未定义。这可能是发展的事情吗?
我可以分叉邮箱,进行更改然后继续。但该方法对我的应用程序来说是如此自定义,我宁愿只打补丁。
如果有人有任何建议、建议或问题,我非常感谢您的建议。
首先,我仍然坚信这只是一个开发问题。每当我有空的时候,我都会测试一下,然后 post 在这里。
其次,为确保不再发生这种情况,我复制了 Mailboxer's Conversation 的源代码并添加了包含内容 include MailboxerExt::Conversation
。
我还构建了不冲突的扩展,重新加载 Mailboxer 的命名空间。
最终结果有文件夹app/models/mailboxer
、lib/mailboxer_ext
。
文件是 app/models/mailboxer/conversation.rb
、lib/mailboxer_ext.rb
和 lib/mailboxer_ext/conversation.rb
。
我正在向 Mailboxer::Conversation
添加一个方法来检索 link 使用邮箱的电子邮件回复(即 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 文件夹。
然后我做的是在邮箱初始化文件 initalizers/mailboxer.rb
:
Mailboxer::Extensions::Conversation
到 Mailboxer::Conversation
Mailboxer.setup do |config|
# ...
end
Mailboxer::Conversation.include Mailboxer::Extensions::Conversation
在我的 rails console
中,代码始终有效。然而在网站中,reply_link
方法首先有效,然后随机变为未定义。
稍后尝试几次....
它停止工作,直到我重新启动服务器...
每当我遇到不相关的异常(即拼写错误、重构等)时,reply_link
方法就会变得未定义。这可能是发展的事情吗?
我可以分叉邮箱,进行更改然后继续。但该方法对我的应用程序来说是如此自定义,我宁愿只打补丁。
如果有人有任何建议、建议或问题,我非常感谢您的建议。
首先,我仍然坚信这只是一个开发问题。每当我有空的时候,我都会测试一下,然后 post 在这里。
其次,为确保不再发生这种情况,我复制了 Mailboxer's Conversation 的源代码并添加了包含内容 include MailboxerExt::Conversation
。
我还构建了不冲突的扩展,重新加载 Mailboxer 的命名空间。
最终结果有文件夹app/models/mailboxer
、lib/mailboxer_ext
。
文件是 app/models/mailboxer/conversation.rb
、lib/mailboxer_ext.rb
和 lib/mailboxer_ext/conversation.rb
。