4

我正在构建我的邮件程序,但我不断遇到:

参数数量错误(0 代表 1)

称我为疯子,但我觉得我正确地定义了一切:

控制器(为简洁起见):

def create
@cms484 = Cms484.new(cms484_params)

respond_to do |format|
  if @cms484.save
    SendLink.message(@cms484).deliver_later
    format.html { redirect_to cms484s_path, notice: 'Cms484 was successfully created.' }
    format.json { render :show, status: :created, location: @cms484 }
  else
    format.html { render :new }
    format.json { render json: @cms484.errors, status: :unprocessable_entity }
  end
end

发送链接.rb:

    class SendLink < ApplicationMailer
    def message(cms484)
    @cms484 = cms484
    mail(
      :subject => 'Hello from Postmark',
      :to  => @cms484.recipient ,
      :from => 'info@mysite.com',
      :html_body => '<strong>Hello</strong> user!.',
  end
end

其他人可以看到大海捞针还是我完全错过了其他东西?

如果这很重要,我将使用 Postmark 进行交付,并根据文档在我的 application.rb 文件中定义这些参数。认为这是一个更简单的问题。

编辑 完整的错误:

Completed 500 Internal Server Error in 76ms

ArgumentError (wrong number of arguments (0 for 1)):
  app/mailers/send_link.rb:2:in `message'
  app/mailers/send_link.rb:4:in `message'
  app/controllers/cms484s_controller.rb:38:in `block in create'
  app/controllers/cms484s_controller.rb:36:in `create'
4

3 回答 3

6

我有一个类似的问题,我将我的 ActionMailer 方法命名为“消息”,结果发现它是 Rails 中的保留字并引发了错误。

我会假设“邮件”是一个保留字,而“电子邮件”不是。

于 2017-01-04T19:21:23.563 回答
0

mail ...line inSendLink.rb看起来不对,改成,

 mail(
  :subject => 'Hello from Postmark',
  :to  => @cms484.recipient ,
  :from => 'info@mysite.com',
  :html_body => '<strong>Hello</strong> user!.')
于 2015-06-03T04:45:08.280 回答
0

好的,所以我决定重新编写它并看哪 - 它有效。为什么或与以前的版本有什么不同(除了方法电子邮件与邮件,肯定不是吗?),我不知道。如果你能看到它是什么,指出来给我!

发送链接.rb:

class SendLink < ApplicationMailer



def email(cms484)
    @cms484 = cms484
     mail(
  :subject => 'Hello from Postmark',
  :to  => @cms484.recipient ,
  :from => 'info@mysite.com',
)
  end
end

控制器:

def create
@cms484 = Cms484.new(cms484_params)

respond_to do |format|
  if @cms484.save
    SendLink.email(@cms484).deliver_later

    format.html { redirect_to cms484s_path, notice: 'Cms484 was successfully created.' }
    format.json { render :show, status: :created, location: @cms484 }
  else
    format.html { render :new }
    format.json { render json: @cms484.errors, status: :unprocessable_entity }
  end
end 

结尾

于 2015-06-05T01:34:32.503 回答