2012-03-02 23 views
1

古いプロジェクトでこれを使用していましたが、これは最新のバージョンの1つで変更されている可能性があります。私は現在、Devise 2.0.4を使用しています。私はマイグレーション中にDeviseで新しいユーザーを作成する方法

User.create :email => '[password]', 
      :password => '[password]', 
      :password_confirmation => '[password]' 

を使用して、私の移行時に新しいユーザーを作成しようとしていますが、私はこれを行うとき、それはこの上の任意の助けをいただければ幸いです

rake aborted! 
An error has occurred, this and all later migrations canceled: 

ActionView::Template::Error 

Tasks: TOP => db:migrate:reset => db:migrate 
(See full trace by running task with --trace) 

次のエラーで中断されます!

また、レールシェルを使用してユーザーを作成することもできましたが、一貫性のために、毎回1人のデフォルトユーザーが必要です。

+2

なぜこれのための種子を使用していませんか? – prasvin

+0

良い質問です。主に私はそれのコンセプトがあったのだが、その名前を覚えていないことを思い出していたので、私が知っていたものを探していたとき、種は上がらなかった。 –

+0

これが解決すれば、答えを加えて質問を閉じるべきかもしれません。しかし、私は自分自身で答えを加えるのは気にしません:P: – prasvin

答えて

4

prasvin's commentに基づいて、私はこれを行うには良い方法は、これ自体は、別のエラーメッセージ

rake aborted! 
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true 
につながる db/seeds.rbに入ると、このような

User.create(:email => '[email]', :password => '[password]', :password_confirmation => '[password]') 

としてシード要素を移入することがわかりました

私が最終的にa different postで見つけたのは、私のconfig/environments/development.rbファイルでまだ設定していなかったという事実に関連していました

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

これは、Deviseが確認メールを送信しようとしたときに、返信先のアドレスがわからなかったために失敗したことを意味します。これがActionView::Template::Errorの原因です。それがすべて完了すると、期待どおりに完全に動作します。

関連する問題