3

使用 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

它说问题出/views/devise/mailer/reset_password_instructions.html.erb在第 5 行。

在该文件的第 5 行有:

<p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>

尽管我已经尝试过,但我不知道如何在 Rails 中设置邮件程序。有人可以帮我吗?

4

2 回答 2

5

最后,您需要在每个环境中为邮件程序设置默认 url 选项。这是“config/environments/development.rb”的配置:

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

您需要指定主机,以便它可以显示在确认电子邮件中。

于 2012-12-21T22:41:06.197 回答
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
于 2014-11-12T05:16:56.143 回答