Pau*_*ane 1 ruby-on-rails actionmailer devise
我之前没有经历过这个,但是自从我的rails网站移到Heroku后,每当我试图触发Devise发送电子邮件时,我都收到以下消息
Started POST "/members/forgot-password" for 127.0.0.1 at 2013-02-24 00:02:27 +1100
Processing by Devise::PasswordsController#create as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"9G1P34ddbq2TN7SkmFuCet5d7fPMvWdSSpIaGqSZW9g=", "user"=>{"email"=>"paul.mcguane@*****"}, "commit"=>"Recover password"}
User Load (3.1ms) SELECT "users".* FROM "users" WHERE "users"."email" = 'paul.mcguane@me.com' LIMIT 1
Completed 500 Internal Server Error in 31ms
ArgumentError - wrong number of arguments (2 for 1):
app/mailers/devise/mailer.rb:8:in `reset_password_instructions'
Run Code Online (Sandbox Code Playgroud)
mailer.rb
class Devise::Mailer < ::ActionMailer::Base
include Devise::Mailers::Helpers
def confirmation_instructions(record)
devise_mail(record, :confirmation_instructions)
end
def reset_password_instructions(record)
devise_mail(record, :reset_password_instructions)
end
def unlock_instructions(record)
devise_mail(record, :unlock_instructions)
end
end
Run Code Online (Sandbox Code Playgroud)
似乎最新版本需要额外的论据.
至少它适用于我的代码.这是我的自定义邮件程序类的工作代码.
请注意action每个方法的额外参数.
class MyMailer < ActionMailer::Base
include Devise::Mailers::Helpers
def confirmation_instructions(record, token, opts={})
@token = token
devise_mail(record, :confirmation_instructions, opts)
end
def reset_password_instructions(record, token, opts={})
@token = token
devise_mail(record, :reset_password_instructions, opts)
end
def unlock_instructions(record, token, opts={})
@token = token
devise_mail(record, :unlock_instructions, opts)
end
# optional: this override method is from Devise::Mailers::Helpers
def headers_for(action,opts={})
…
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2061 次 |
| 最近记录: |