【发布时间】: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 等之后...)然后我认为问题不是来自它(然后我没有在这里分享)。我说的对吗? -
使用
prygem 调试代码..并添加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