前提
コメント機能の非同期通信化の実装の最中なのですが、controllerファイルでrenderでjsファイルを読み込んでもTemplate is missingのエラーが出てしまいます。
既に他の機能(いいね機能)で非同期通信化は出来ています。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
Template is missingの解決
発生している問題・エラーメッセージ
エラーメッセージ Template is missing Missing template book_comments/comments, application/comments with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in: * "/home/ec2-user/environment/rails6-bookers2-debug-ruby3-main/app/views" * "/home/ec2-user/.rvm/gems/ruby-3.1.2/gems/devise-4.8.1/app/views" * "/home/ec2-user/.rvm/gems/ruby-3.1.2/gems/actiontext-6.1.7/app/views" * "/home/ec2-user/.rvm/gems/ruby-3.1.2/gems/actionmailbox-6.1.7/app/views"
該当のソースコード
book_comments_controller
1class BookCommentsController < ApplicationController 2 def create 3 book = Book.find(params[:book_id]) 4 comment = current_user.book_comments.new(book_comment_params) 5 comment.book_id = book.id 6 if comment.save 7 render :comments #render先にjsファイルを指定 8 else 9 render 'books/show' 10 end 11 end 12
book_comments/comments.js.erb
1<!--id="comments_areaにをrenderで指定した部分テンプレートに更新--> 2$(".comments_area").html("<%= j(render 'book_comments/post_comments', book: @book, book_comment: @book_comment) %>"); 3<!--フォームを送信したあとにフォームの値を空にします--> 4$("textarea").val('');
試したこと
ファイル名の書き間違いがないか確認
https://magazine.techacademy.jp/magazine/41310
https://teratail.com/questions/49673
上記の記事でTemplate is missing関連のエラーを調べてみましたが解決できませんでした。
補足情報(FW/ツールのバージョンなど)
Rails 6.1.7
回答3件
あなたの回答
tips
プレビュー