初めまして!駆け出しエンジニア真っ只中のゆーとです :)
今回はエラーが出てないにもかかわらず投稿した内容が表示されない時の洗い出し方の一例について、 アウトプットも兼ねて説明したいと思います!
なにぶん絶賛初学者なので、お手柔らかにご指摘して頂くと幸いです🙇♂️
##データベースをチェックしましょう
これで、データがデータベースに保存される過程で問題が発生しているのか、データを取り出して表示する過程で問題が発生してるのかをある程度搾り込むことができます。
####データベースに投稿データが保存されてない場合
params(入力された情報を持ってる箱)にしっかり情報が入っているか確認をします。
[確認の手順]
binding.pryを入力データが送られるはずのアクションにかける
↓
試しに何か投稿してみる
↓
コマンドラインで、paramsコマンドをうつ¶msの投稿内容が入ってるか見る
これでparamsに情報が入ってない場合はデータが正しく送られず、情報がデータベースに行く過程で何か問題が発生していることになります。
あとこのデータベースに保存されてないパターンであるのが
paramsの中にモデル名がついた箱があるパターン
これは、paramsの中にさらに鍵のかかった箱がある状態で、この鍵を開けない限りデータベースに情報を送ることが出来ません。
その対策として
params.require(:モデル名).permit(:受け取るカラム名)
のrequireメソッドがあり、これによって鍵を開けてデータを送信出来る状態にすることができます
*requireメソッドは本来、params内の特定のキー(情報)のみを受け取るよう制限をかけるメソッドです
####データベースに投稿データが保存されている場合
この場合はコントローラーに情報が渡される過程で問題が発生してるか、ビューファイルのコードのミスでデータベースのデータを表示できない可能性が大です。
以上、投稿が表示されない際の大まかな問題点の洗い出し方を書き出してみました。