2012-11-29 12 views
15

私はフットボールチームとフットボールのポジションのセットをシードしようとしています。rake db:seedがseeds.rbからロードされていません

rake db:seed --trace 
** Invoke db:seed (first_time) 
** Execute db:seed 
** Invoke db:abort_if_pending_migrations (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Execute db:abort_if_pending_migrations 

は、すべてが正常に見えるが、私は私のサイト、起動時にレコードがない(前桃働いていた、私はそれはそこのコードではありません知っています)。

チーム、選手、ポジションの3つのオブジェクトがロードされています。興味深いことに、新しいチームを作るにはフィールドはありませんが、新しいプレーヤーを作るためにはフィールドがあります。

position = Position.create(:positionName => 'Quarterback', :positionShort => 'QB', :stance => 'offense') 
team = Team.create(name:'Patriots', location:'New England', conference:'AFC', division:'East', wins:'5', losses:'3') 

私は経験不足と不可解なエラーの岐路に立っています、私はあなたが確認する必要があります他に何を知ってみましょう:

Seeds.rbは次のようになります。

答えて

44

私はエラーが表示されることを希望して提案を行います。あなたのシードファイルでcreateの代わりにcreate!を使用してください。モデルが制約を満たさない場合、操作によって例外がスローされます。そのショットを与え、それが役立つかどうかを確認してください。

position = Position.create!(:positionName => 'Quarterback', :positionShort => 'QB', :stance => 'offense') 
team = Team.create!(name:'Patriots', location:'New England', conference:'AFC', division:'East', wins:'5', losses:'3') 
+2

グッドコールダン、そしてベン(ジャクソン・ファイブのように歌わ)を、スネークケースを失います。グロス:-) ':position_short'と':position_name'など... 5ドルそれattr_accessibleです – pjammer

+1

非常に感謝!それがトリックでした。検証に問題があったので、すべてのステップを踏んで、それを実行しました。そんなにありがとう。 –

+0

できる場合は+10 – Mark

0

代替ソリューションですか?

皆さん、ちょっと皆さん、上記の提案がうまくいかない場合に備えて、可能な解決策を追加したいと思います。

データベースをリセットする必要がありました。そうしないと、レール 'db:seed'は上記と同じ方法で失敗します。

これは私の仕事:

rails db:migrate:reset 
rails db:seed 
関連する問題