2
2

データベースを整理した

Last updated at Posted at 2024-01-24

初めに

投稿一覧ページでそれぞれの投稿に紐付いているユーザ名や画像を表示できなかったので書きます。

問題

以下エラーに遭遇しました。

スクリーンショット 2024-01-24 20.09.38.png

解決方法

エラー文から推測して、この辺りを調査しました。

① Viewファイルの誤字脱字

② Postsコントローラーのindexアクション内でインスタントメソッドuserの定義忘れ

③ インスタントメソッドの理解不足

②まで調査して、インスタンスメソッドが何をしているのか理解できていなかったので復習しました。復習を終えて、③が原因ではないと分かりました。そこで、こちらの記事を参考にデータベース周りを調べました。

全ての投稿データを取得して、id:1 の user_idがnilとid:2 のuser_idが1になっていることが分かりました。これは、開発の途中で投稿に紐ずくようにuser_idを追加したからです。なので、user_idが追加される前の投稿はnilとなっています。

rails console
posts = Post.all
id: 1,
  content: "Ruby",
  created_at: Wed, 17 Jan 2024 22:47:13.503984000 UTC +00:00,
  updated_at: Wed, 17 Jan 2024 22:47:13.503984000 UTC +00:00,
  user_id: nil>,

  id: 2,
  content: "JavaScript",
  created_at: Wed, 17 Jan 2024 22:50:54.265051000 UTC +00:00,
  updated_at: Wed, 17 Jan 2024 22:50:54.265051000 UTC +00:00,
  user_id: 1>,

nilのデータが含まれていることが原因ということが分かったので、1度データベースをリセットしましょう。リセットすると、解消されました。

rails db:reset

終わりに

記事を参考にして分かったままにしないで言語化することが大切だと感じました。

2
2
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
2
2