Rails Devise 忘記密碼無法寄信

今天遇到Devise 忘記密碼時無法寄信

後來 編輯 config/environments/development.rb 和 production.rb 加入寄信時預設的網站網址

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

這樣就可以寄信了

但是收到信時要去更改密碼時,又出現錯誤

後來發現是預設指定的layout 是 application.html.rb

到 application_controller 裡面, 指令layout如下,就可以正常了

def layout_by_resource
if devise_controller? && resource_name == :user
“backstage”
else
“application”
end
end