投稿された記事にコメントで機能の実装でno method errorが出力され、単純なミスでのエラーでしたので解決方法を記載
class ContentsController<ApplicationController
省略
def show
@comment = Comment.new
@comments = @content.comments.includes(:user)
end
contentsコントローラーのshowアクションで投稿された記事の詳細画面に遷移されそこで記事に対してコメントをする機能とコメント一覧を表示する機能を実施しようとしたところ, undefined method comments
for nill: nillclassと出力された。
モデル同士のアソシエーションやタイプミスを考え見直したがどこも間違っておらず他の原因を考えた。
結果としてshowアクションの始めにどの記事かを取得していないことによるエラーであることがわかった。
class ContentsController<ApplicationController
省略
def show
@content = Content.find(params[:id])
@comment = Comment.new
@comments = @content.comments.includes(:user)
end
@contentでどの記事かを指定、取得しなければ@commentsを定義したとしてもそもそも@contentが無いからnilになってしまいエラーが出力されてしまったという内容でした。
かなり単純なミスでしたので自分の勉強不足が露骨に出てしまいました。
自分では理解したつもりでももう一度各コードの意味とどのように動いているかをアウトプットできるよう頑張ります。