Ruby on rails 使用Desive gem的MailyHerald设置(错误:NoMethodError at/user)
我正在尝试在rails 4应用程序中使用Desive gem设置MailyHerald。 我遵循以下步骤: 现在,当我尝试注册一个新用户(确认邮件应该通过MailyHerald发送)时,我收到以下错误:Ruby on rails 使用Desive gem的MailyHerald设置(错误:NoMethodError at/user),ruby-on-rails,devise,sidekiq,mailing,Ruby On Rails,Devise,Sidekiq,Mailing,我正在尝试在rails 4应用程序中使用Desive gem设置MailyHerald。 我遵循以下步骤: 现在,当我尝试注册一个新用户(确认邮件应该通过MailyHerald发送)时,我收到以下错误: NoMethodError at /user undefined method `[]' for false:FalseClass maily_herald (0.9.3) lib/maily_herald.rb # Gets the Maily logger. def logger
NoMethodError at /user
undefined method `[]' for false:FalseClass
maily_herald (0.9.3) lib/maily_herald.rb
# Gets the Maily logger.
def logger
unless MailyHerald::Logging.initialized?
opts = {
level: options[:verbose] ? Logger::DEBUG : Logger::INFO,
}
opts[:target] = options[:logfile] if options[:logfile]
MailyHerald::Logging.initialize(opts)
end
有什么想法吗?谢谢
编辑:
一个小的更新,可能与我得到的错误有关:
当我这样做的时候
maily_herald paperboy --start
如页面所示,我得到
编辑2:
好的,我做了一些测试
我用Desive从头开始创建了一个新应用程序(rails 4.2.5.1和ruby 2.2.4p230)。
现在,当用户注册时,我没有收到任何错误,但没有发送确认电子邮件
运行后台处理
maily_herald paperboy --start
还这个
[Maily#cli] INFO: Started with options: {:mode=>:paperboy, :action=>:start, :daemon=>true}
You really should set a logfile if you're going to daemonize
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/gems/maily_herald-0.9.3/lib/maily_herald/cli.rb:200:in `daemonize'
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/gems/maily_herald-0.9.3/lib/maily_herald/cli.rb:45:in `paperboy'
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/gems/maily_herald-0.9.3/bin/maily_herald:10:in `<top (required)>'
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/bin/maily_herald:23:in `load'
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/bin/maily_herald:23:in `<main>'
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/bin/ruby_executable_hooks:15:in `eval'
/Users/fabbrro/.rvm/gems/ruby-2.2.4@testMailyHerald/bin/ruby_executable_hooks:15:in `<main>’
[Maily#cli]信息:以选项开始:{:mode=>:paperboy,:action=>:start,:daemon=>true}
如果要进行daemonize,确实应该设置一个日志文件
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/gems/maily_herald-0.9.3/lib/maily_herald/cli.rb:200:in'daemonize'
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/gems/maily_herald-0.9.3/lib/maily_herald/cli.rb:45:in'paperboy'
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/gems/maily_-herald-0.9.3/bin/maily_-herald:10:in`'
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/bin/maily_先驱报:23:in'load'
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/bin/maily_先驱报:23:in`'
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/bin/ruby可执行文件挂钩:15:in'eval'
/Users/fabbrro/.rvm/gems/ruby-2.2。4@testMailyHerald/bin/ruby\u可执行文件\u挂钩:15:in`'
为了进一步调查,我还尝试设置。我创建了一些实体(用户)并尝试向他们发送电子邮件(通过mailcatcher)。
直到现在,即使没有安装Desive gem,我似乎也没有运气:
运行后台处理时根本没有消息,
没有错误,
但也没有邮件被发送。有人成功试用了该应用程序吗?我刚刚注意到这个问题。你看过我对github的评论了吗 此外,我还检查了我的
Procfile
,正在运行:
web: bundle exec rails s
worker: bundle exec sidekiq -v
paperboy: bundle exec maily_herald paperboy
Sidekiq
对于MailyHerald
来说是必不可少的。我想维基页面上没有指定。让我知道这是否解决了你的问题。我还将尝试使用您的设置设置新的应用程序。有没有我可以研究的公开回购
更新
刚创建的新应用程序:
- “设计”——宝石
gem安装mailcatcher
mailcatcher
gem安装工头
- 使用以下代码在应用程序目录中创建
:Procfile
web: bundle exec rails s worker: bundle exec sidekiq -v paperboy: bundle exec maily_herald paperboy
工头启动
然后在浏览器中打开mailcatcher和应用程序并注册新用户。您应该会看到新添加的邮件发送到dispatcher和sidekiq日志中运行此功能。设置完成后是否重新启动了服务器?谢谢您的回复,SsouLlesS。我重新启动了服务器,但错误仍然存在,没有发送电子邮件。我试图按照指南使用Desive设置maily_herald,我也遇到了同样的问题,这似乎是maily_herald的一个错误,我已经在github中发现了一个问题。让我们看看维护人员是否注意了。谢谢您的帮助。我真的很感激。我还将关注上一期的公开发行github@fabbrro-我的maily_herald版本中弹出了相同的日志消息。所以我决定用叉子叉宝石,看看引擎盖下面发生了什么。事实证明,由于某种原因,gem没有正确解析我在maily_herald.yml文件中指定的日志文件。我所做的是修复文件。在cli.rb文件中,daemonize方法引入了选项[“logfile”],而不是选项[:logfile]。。所以我只是添加了这一行:
options[:logfile]=options[“logfile”]
虽然不优雅,但它很好用……多亏了你的帮助,我终于找到了问题所在:在github页面之后,我创建了文件maily\u herald.yml,试图配置maily\u herald,但我把它留空了。一旦被移除,我就能够解决这个问题。无论如何,我接受你的回答。感谢您发布的示例应用程序,我了解了如何正确设置和运行mail_herald,我可以比较这两个应用程序来发现问题。的确,如何通过Procfile设置Sidekiq并没有在wiki页面上很好地指定。我没有以正确的方式运行它。Maily_herald现在似乎在我的应用程序中正常工作。谢谢
web: bundle exec rails s
worker: bundle exec sidekiq -v
paperboy: bundle exec maily_herald paperboy