ЯoomeR

プログラミング~実装とエラー解決と、時々、AI~

Herokuでrails db:seedができない

ローカル環境ではうまくいく場合

Heroku側のDBの問題

Herokuではidが1,2,3....という順番で振られない。

1,11,21...と10ずつ増えていく仕様になっている。

(3,13,23など、開始が1以外になることもある。)

このような場合はid情報を固定してcreateすれば解決します。

#Itemと紐付けるため、idの値を固定している。
User.create(id:"1", nickname:"Arufa")
User.create(id:"2", nickname:"Beta")

Item.create(name:"ダンベル", user_id:"1")
Item.create(name:"ベンチ", user_id:"2")

ローカル環境でもエラーが出る場合

記述の順番に問題がある

Item.create(name:"ダンベル", user_id:"1")
Item.create(name:"ベンチ", user_id:"2")
User.create(id:"1", nickname:"Arufa")
User.create(id:"1", nickname:"Beta")

上記のような記述の場合、エラーが発生する。

Userが作られる前にuser_idを参照しようとするため、アソシエーションが組めずエラーが発生する。

参照先を先にcreateする記述にすることに注意しましょう。

User.create(id:"1", nickname:"Arufa")
User.create(id:"1", nickname:"Beta")
Item.create(name:"ダンベル", user_id:"1")
Item.create(name:"ベンチ", user_id:"2")