投稿に対してコメントをつける機能を実装しています。
コメントを新規作成はできるのですが、削除する際にエラーが発生してしまいます。
投稿を表示、削除のボタンを
_index.html.erb
1<table> 2 <thead> 3 </thead> 4 5 <tbody> 6 <% book.book_comment.each do |book_comment| %> 7 <tr> 8 <th> 9 <%= attachment_image_tag(book_comment.user, :profile_image, :fill, 60, 60, fallback: "no_image.jpg", class: "img-circle pull-left profile-thumb")%> 10 <%= book_comment.user.name %> 11 </th> 12 <th> 13 <%= book_comment.comment %> 14 </th> 15 <td> 16 <div><% if book_comment.user == current_user %> 17 <%= link_to 'Destroy', book_book_comment_path(book_comment),method: :delete %></div> 18 <% end %> 19 </td> 20 <% end %> 21 </tr> 22 </tbody> 23 </table> 24 25 26
: : <%= render 'book_comments/index', book: @book %> : :
#book_commentコントローラー : : : def destroy book_comment = BookComment.find_by(id: params[:id], user_id: params[:user_id]) if book_comment.user == current_user book_comment.destroy redirect_to book_path(params[:book_id]) else @book = Book.find(params[:id]) @user = @book.user @book_new = Book.new @book_comment = BookComment.new redirect_to book_path(book) end end private def book_comment_params params.require(:book_comment).permit(:comment,:user_id) end end
ルーティングを
resources :books do resource :favorites, only: [:create, :destroy] resources :book_comments, only: [:create, :destroy] end end
おそらくbook_commentsがうまく渡せていないのが原因かと思うのですが、
何かアドバイスいただけるとありがたいです。
参考までに・・・「がちがち」の意味
https://dictionary.goo.ne.jp/word/%E3%81%8C%E3%81%A1%E3%81%8C%E3%81%A1/
本当に申し訳ございません。
勉強を始めて日が浅く、基本的なこともわかっていないような初心者です。というようなニュアンスを伝えるために「がちがちの」と使ってしまいました。
今後は正しく日本語を使えるように努力したいと思います。
できればその下も読んでいただけるとありがたいです。
> 引用テキストおそらくbook_commentsがうまく渡せていないのが原因かと思うのですが、
エラーは、下記を基に解決していきます。
①エラー文を読む(翻訳する)
`NoMethodError in BookCommentsController#destroy`
`undefined method 'user' for nil:NilClass`
②デバッグする
参考:[https://www.youtube.com/watch?v=5fyrGslhUcY](https://www.youtube.com/watch?v=5fyrGslhUcY)
もし②デバッグしていないようであれば、一度トライしてみることをおすすめします。
そうすれば今後、自分で解決できるようになるかと思います。
ありがとうございます。
gem 'better_errors'の存在は初めて知ったので、今後活用していこうと思います。
回答2件
あなたの回答
tips
プレビュー