ローカル環境ではうまくいく場合
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")