重置密码的问题 - 设计

时间:2012-12-21 22:36:19

标签: ruby-on-rails ruby devise erb

使用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中设置邮件程序,尽管我已经尝试过。有人可以帮我吗?

2 个答案:

答案 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