症状
Railsでテストデータを作成しようとしたとき、下記エラーが発生してうまくデータが作成できませんでした。 どうやら、データベースにゼロ番目のデータが登録されていないにもかかわらず、ゼロ番目を参照しようとしているため、エラーが出ているようです。エラー
rails aborted!
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=0
以下がseedのソースになります。
seed.rb
3.times do |n|
user = User.new(
first_name: "firstname#{n}",
last_name,"lastname{n}",
)
user.save!
end
3.times do |n|
user = User.find(n)
6.times do |m|
home = user.homes.build(
name:"name:"honename#{n}",
address:"address#{n}",
);
end
end
解決方法
2つ目のループが0番目から繰り返していたために、findしたときにエラーが発生していたので、その個所を任意の値からループさせるようにすることで、解決しました。seed.rb
3.times do |n|
user = User.new(
first_name: "firstname#{n}",
last_name,"lastname{n}",
)
user.save!
end
3.upto(7){|n|
user = User.find(n)
6.times do |m|
home = user.homes.build(
name:"name:"honename#{n}",
address:"address#{n}",
);
end
}
参考