undefined method `comments' for nil:NilClassが解決できない
投稿詳細画面にコメントを表示させたいのですが、エラーが出てしまいどう解決すればいいかわかりません。
詳しい方、何かアドバイスをいただけると幸いです。
発生している問題・エラーメッセージ
undefined method `comments' for nil:NilClass
ruby
1 def show 2 @comment = Comment.new 3 @comments = @prototype.comments.includes(:user) ←ここが赤く表示される。 4 @prototype =Prototype.find(params[:id]) 5 end 6
該当のソースコード
ruby
1class PrototypesController < ApplicationController 2def show 3 @comment = Comment.new 4 @comments = @prototype.comments.includes(:user) 5 @prototype =Prototype.find(params[:id]) 6 end 7
ruby
1class CommentsController < ApplicationController 2 def create 3 @comment = Comment.new(comment_params) 4 if @comment.save 5 redirect_to prototype_path(@comment.prototype) 6 else 7 @prototype = @comment.prototype 8 @comments = @prototype.comments 9 render "prototypes/show" 10 end 11 end
ruby
1 <% if user_signed_in? %> 2 <%= form_with model: [@prototype, @comment], local: true do |f|%> 3 <div class="field"> 4 <%= f.label :content, "コメント" %><br /> 5 <%= f.text_field :content, id:"comment_content" %> 6 </div> 7 <div class="actions"> 8 <%= f.submit "送信する", class: :form__btn %> 9 </div> 10 <% end %> 11 <% end %> 12 <ul class="comments_lists"> 13 <% @comments.each do |comment| %> 14 <li class="comments_list"> 15 <% @comment.content%> 16 <%= link_to "(#{comment.user.name} )", root_path, class: :comment_user %>
ruby
1Rails.application.routes.draw do 2 devise_for :users 3 root to: "prototypes#index" 4 5 resources :prototypes, only: [:new, :create, :show, :edit, :update, :destroy] do 6 resources :comments, only: :create 7 end 8 9end
何卒よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。