LoadError コメントに対するいいね
解決したいこと
映画についてつぶやけるTwitterのようなアプリを開発しています
現在、投稿(movie)の配下にあるコメント(comment)に対していいね機能を実装中にLoadErrorが発生しました。
発生している問題・エラー
Unable to autoload constant CommentLikesController, expected C:/Users/shunt/laforet_film_club/laforet_app/app/controllers/comment_likes_controller.rb to define it
raise LoadError, "Unable to autoload constant #{qualified_name}, expected #{file_path} to define it" unless from_mod.const_defined?(const_name, false)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
routes
namespace :movies do
resources :searches,only: :index,defaults:{ format: :json }
end
resources :movies do
resources :comments
end
post"/comment_likes/:movie_id/:comment_id/create"=>"comment_likes#create"
post"/comment_likes/:movie_id/:comment_id/destroy"=>"comment_likes#destroy"
____________________________________________________________________________
comment_likes_controller
class CommentLikescontroller < ApplicationController
before_action :authenticate_user
def create
@comment_like=CommentLike.new(
user_id: @current_user.id,
comment_id: params[:comment_id]
)
@comment_like.save
redirect_to("/movies/#{params[:movie_id]}")
end
def destroy
@comment_like=CommentLike.find_by(
user_id:@current_user.id,
comment_id: params[:comment_id]
)
@comment_like.destroy
redirect_to("/movies/#{params[:movie_id]}")
end
end
__________________________________________________________________________________
comments_controller
class CommentsController < ApplicationController
def new
@comment = Comment.new
@movie =Movie.find(params[:movie_id])
@user = User.find(@movie.user_id)
end
def create
@movie=Movie.find_by(id: params[:movie_id])
@comment = Comment.create(comment_params)
respond_to do |format|
format.html { redirect_to @comment }
format.js
end
if @comment.save
flash[:notice]= "コメントしました"
redirect_to movie_path(@movie)
else
flash[:notice]="コメントに失敗しました"
end
end
private
def comment_params
comment_params = params.require(:comment).permit(:content).merge(user_id: @current_user.id,reply_comment: params[:movie_id])
end
_______________________________________________________________________________
movies_controller
def show
@movie =Movie.find(params[:id])
@user = User.find(@movie.user_id)
@likes_count = Like.where(movie_id: @movie.id).count
@comments = Comment.includes(:user).where(reply_comment: @movie.id)
@comment = Comment.new
@comment_likes_count = CommentLike.where(comment_id: @comment.id).count
end
_______________________________________________________________________________
movies/show.html.erb
<% if @comments.present? %>
<div class="comment-heading">
<h2>コメント一覧</h2>
</div>
<% @comments.each do |comment| %>
<div class="comments-index-item">
<div class="comments-left">
<img src="<%= "/user_images/#{comment.user.image_name}" %>">
</div>
<div class="comments-right">
<%= link_to(comment.user.name ,"/users/#{comment.user.id}") %>
<p>
<%= comment.content %>
</p>
<div class="movie-item">
<%= comment.created_at %>
</div>
<% if CommentLike.find_by(user_id:@current_user.id,comment_id:comment.id) %>
<%= link_to("/comment_likes/#{@movie.id}/#{comment.id}/destroy",{method:"post"}) do %>
<span class="fa fa-heart like-btn-unlike"></span>
<% end %>
<% else %>
<%= link_to("/comment_likes/#{@movie.id}/#{comment.id}/create",{method:"post"}) do %>
<span class="fa fa-heart like-btn"></span>
<% end %>
<% end %>
<%= @comment_likes_count %>
<% if comment.user_id == @current_user.id || @current_user.admin? %>
<%= link_to("編集",edit_movie_comment_path(@movie,comment.id)) %>
<%= link_to("削除",movie_comment_path(@movie,comment.id), method: :delete) %>
<% end %>
</div>
</div>
<% end %>
<% end %>
version
ruby 2.7.2
Rails 5.2.5
windows
自分で試したこと
他のloaderrorに関する記事を見ても、問題点が見当たらず困っています
お力添えいただきたいです
0