#エラー発生
db/seeds.rbの中身の変更を行い、bundle exec rails db:seed
を行ったところ、「localhost でリダイレクトが繰り返し行われました。」のエラーが発生した。
ログは下記の通り。
Started GET "/login" for ::1 at 2020-02-11 15:40:29 +0900
Processing by UserSessionsController#new as HTML
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 13 LIMIT 1
↳ vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
Redirected to http://localhost:3000/login
Filter chain halted as :require_login rendered or redirected
Completed 302 Found in 1ms (ActiveRecord: 0.3ms)
#原因
下記のようにユーザーは10人にした。
db/seeds.rb
10.times do
User.create(
name: Faker::Name.name,
email: Faker::Internet.email,
password: '12345678'
)
end
ユーザーカウントするとご覧のようになる。
irb(main):005:0> User.count (0.4ms) SELECT COUNT(*) FROM users => 10
それに対してサーバーログ上ではUser Load (0.3ms) SELECT users.* FROM users WHERE users.id = 13
となっており、13人目のユーザを取得しようとしている。
存在してないユーザーを取得しようとするができないためエラーになっている。自分でデータを入れたため、ユーザーが10人という上限を超えて存在していると思われる。
#解決方法
下記コマンドを実行してユーザーを消去。
User.all.destroy_all
その後再びbundle exec rails db:seed
を行い、サーバーを再起動したところ、画面が正常に表示された。