使用Devise重置密码时遇到问题。
当我点击“发送给我重置密码说明”时,我得到:
ArgumentError at /users/password
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
它说问题出在第5行的/views/devise/mailer/reset_password_instructions.html.erb
。
在该文件的第5行,有:
<p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
我不知道如何在Rails中设置邮件程序,尽管我已经尝试过。有人可以帮我吗?
答案 0 :(得分:5)
最后,您需要为每个邮件程序设置默认网址选项 环境。以下是“config / environments / development.rb”的配置:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
您需要指定主机,以便在confimation电子邮件中显示。
答案 1 :(得分:1)
您可以像这样创建默认过滤器:
# application_controller.rb
before_filter :mailer_set_url_options
...
def mailer_set_url_options
ActionMailer::Base.default_url_options[:host] = request.host_with_port
end