0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】rails aborted! ActiveRecord::RecordNotFound: Couldn't find User with 'id'=0の対処法

Last updated at Posted at 2021-08-11

症状

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
}

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?