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.erb5行目にあると言われています。

そのファイルの 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 に答える