NoMethodErrorを解決する。
Progateで学習していたユーザー機能を、自分のアプリに追加していたため、もともと存在していたuser_idをuser_progate_idに変えました。
そして、新規投稿しようとすると、このようなエラーが発生しました。
application_controller.rbのsession[:user_id]をsession[:user_progate_id]に変えましたが、変化なし。
他のファイルにおいても、user_idと書いてある部分をuser_progate_idに直しましたが、変化なし。
原因が全然わからず、undefined method 'user_id'とググって、
https://musicamusik.hatenablog.com/entry/2018/05/26/172643
この記事を読みました。
記事の中でモデルの話をしていたので、「そういえばモデルは確認していなかった!」と思い (app / models / post.rb) を確認。
すると、
と書いていたことに気づけました。
このように修正して、画面をリロードすると
投稿できました!
エラーが起こってるよ!とRailsさんに言われた箇所はコントローラーでしたが、実際の原因は、モデルでした。
これは、いろんな処理を行ってくれているRailsさんの気持ちになれば分かります。
Railsさんは、@post.saveで、@postに入っているデータをモデルを通してデーターベースに書き込んでいます。
その際に、
undefined method `user_id'
「(モデルに)定義されてないuser_idがある」とおっしゃっています。
「モデルに」の部分はこちらが察しなければいけませんでした。
以上。