Ruby on Rails + Deviseの組み合わせでMissing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

Ruby on Railsで認証機能を実現してくれるDevise

 

Devise README.mdにも記載があるが、次の設定が必要。

 

READMEに書いてあるのに設定を忘れた私がいけないが、設定しないとメール送信操作時に次の例外が発生する。

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

 

ちなみに、Ruby on Railsのドキュメントで調べても、RailsGuidesのConfiguring Rails Applicationsにもdefault_url_optionsの説明は無い。

 

APIドキュメントの説明文に一箇所だけ記載を見つけることができた。

ActionMailer::Base

 
 

もう一度同じミスをしてハマった時にググったら、このページを発見できますように。

 
 
 

2012/12/29 追記:

rails generate devise:installした時にも、config.action_mailer.default_url_options設定しろとちゃんと表示されますね。。

E:\home\aptanaws\StudyRails\sample_devise>rails g devise:install
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================

Some setup you must do manually if you haven't yet:

1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:

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

In production, :host should be set to the actual host of your application.

 

見落としすぎな私。

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=1320