Ruby on rails 使用Desive gem的MailyHerald设置(错误:NoMethodError at/user)

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

我正在尝试在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
  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