【问题标题】:Ruby mailer with sidekiq into Rails 5.x app : ArgumentError带有 sidekiq 的 Ruby 邮件程序进入 Rails 5.x 应用程序:ArgumentError
【发布时间】:2017-06-07 08:54:06
【问题描述】:

我正在尝试从 rails 4.x 迁移到 rails 5.x

gemfile.lock:
- 导轨 (5.0.2)
-sidekiq_mailer (0.0.8)
-sidekiq (5.0.0)
- actionmailer (= 5.0.2)

对于邮寄的东西,当我尝试以下操作时: $>UserMailer.password_reset(account_to_reset).deliver_later
(以前就像一个魅力)

我收到了这个错误:
ArgumentError: wrong number of arguments (given 2, expected 0)
带有(完整且唯一的)以下回溯:

来自 /Users/nathangouy/.rvm/gems/ruby-2.4.1/gems/actionmailer-5.0.2/lib/action_mailer/base.rb:582:in 'initialize' 来自 /Users/nathangouy/.rvm/gems/ruby-2.4.1/gems/sidekiq_mailer-0.0.8/lib/sidekiq_mailer/proxy.rb:11:in 'new' 来自 /Users/nathangouy/.rvm/gems/ruby-2.4.1/gems/sidekiq_mailer-0.0.8/lib/sidekiq_mailer/proxy.rb:11:in 'actual_message' 来自 /Users/nathangouy/.rvm/gems/ruby-2.4.1/gems/sidekiq_mailer-0.0.8/lib/sidekiq_mailer/proxy.rb:28:in 'method_missing'

我尝试了很多东西,但在 sidekiq 或 actionmailer 上找不到任何类似的问题

【问题讨论】:

  • 这是参数传递错误,也粘贴 UserMailer 的代码
  • 问题是我有一个在我的password_reset 方法开始时从未触发过的 byebug(即使在重新启动 rails s/c + sidekiq 等之后...)然后我认为问题不是来自它(然后我没有在这里分享)。我说的对吗?
  • 使用pry gem 调试代码..并添加binding.pry 以调试代码而不是byebug
  • 好吧,我只是用 pry 尝试了一些东西,但对我没有多大帮助。当我尝试查看核心代码时,事实是 sidekiq-mailer 尝试以旧方式启动 Action 邮件程序:actionmailer-4.2.4/lib/base.rb#l580 :def initialize(method_name=nil, *args) 现在是:actionmailer- 5.0.2/lib/base.rb#l582:def initialize(无参数)

标签: ruby-on-rails-5 actionmailer sidekiq mailer


【解决方案1】:

好的,我发现了问题,问题是 sidekiq_mailer 不是由 sidekiq 作者维护(我错过了这个关键信息),然后它现在不能用于 sidekiq/rails 5.x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多