【问题标题】:ArgumentError in Rails::MailersController#preview. Wrong number of arguments (1 for 2)Rails::MailersController#preview 中的参数错误。参数数量错误(1 对 2)
【发布时间】:2016-11-14 23:12:55
【问题描述】:

我的邮件控制器从不采用第二个参数。一旦我传入另一个参数,就会得到如下图所示的错误。

错误

job_notifier.rb

注意:如果它只有一个 job 参数,它就可以工作。

class JobNotifier < ApplicationMailer

  def send_post_email(job, unsubscribe)
    @user = User.where(:email => true).all
    emails = @user.collect(&:email).join("#{';'}")
    @jobs = job
    @job = job
    @unsubscribe = unsubscribe
    mail(:to => emails, :bcc => User.pluck(:email).uniq, :subject => 'New job posted on FarFlungJobs')
  end

end

邮件触发器

JobNotifier.delay(run_at: 5.minutes.from_now).send_post_email(@job, @unsubscribe)

test/mailer/preview/sjob_notifier_preview.rb

# Preview all emails at http://localhost:3000/rails/mailers/job_notifier
class JobNotifierPreview < ActionMailer::Preview

  def send_post_email
    user = User.all
    JobNotifier.send_post_email(user)
  end

end

可能是什么问题,我该如何解决?

【问题讨论】:

  • 错误消息指出它是用于 mailers_controller 中的预览方法,并且您已经显示了不同控制器和方法的代码。
  • @margo 你能详细说明一下吗?实际上不知道我缺少什么以及在哪里修复它。
  • 你能显示触发 send_post_email 方法的代码吗?
  • @margo 查看更新。这就是我能想到的。

标签: ruby-on-rails-4


【解决方案1】:

在job_notifier_preview中

JobNotifier.send_post_email(user)

只发送一个参数。您确定您发送的参数正确吗?您需要传递 2 个参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2014-12-07
    • 2012-04-15
    • 1970-01-01
    • 2015-04-26
    • 2015-10-24
    • 1970-01-01
    相关资源
    最近更新 更多