Я создаю приложение rails, которое создает аналог (создать) или нет (уничтожить) по ссылке, щелкнув удаленно: true ajax request
Сообщение проходит, транзакция фиксируется, но ответ js не проходит, и я получаю сообщение об ошибке в консоли сервера
No template found for ForumThreads::ForumPosts::LikesController#create, head :no_content
структура представления
forum_threds/show.html.haml
....
= render @forum_thread.forum_posts
....
для отображения каждого сообщения в теме
чем
forum_posts/_forum_post.html.haml
....
%div{id: "fourm_post_#{forum_post.id}" }
= render partial: "forum_posts/likes", locals: { post: forum_post }
....
который рендерит
forum_posts/_likes.html.haml
- if user_signed_in? && current_user.likes?(post)
= link_to "UnLike", forum_post_likes_path(post), method: :delete,
remote: true
- else
= link_to "Like", forum_post_likes_path(post), method: :post, remote:
true
и мой контроллер
class ForumThreads::ForumPosts::LikesController < ApplicationController
before_action :authenticate_user!
before_action :set_forum_post
before_action :set_forum_thread
def create
@forum_post.likes.where(user_id: current_user.id).first_or_create
respond_to do |format|
format.js
format.html { redirect_to @forum_thread}
end
end
def destroy
@forum_post.likes.where(user_id: current_user.id).destroy_all
respond_to do |format|
format.js
format.html { redirect_to @forum_thread}
end
end
private
def set_forum_thread
@forum_thread = ForumThread.find(@forum_post.forum_thread_id)
end
def set_forum_post
@forum_post = ForumPost.find(params[:forum_post_id])
end
end
При использовании remote: false это работает, как и ожидалось, при перезагрузке страницы, но когда я устанавливаю remote: true, я получаю ошибку no template
моя файловая структура для представлений
- forum_threads /
- show.html.haml
- forum_posts /
- show.html.haml
- _likes.html.haml
- любит /
- create.js.erb
- destroy.js.erb
и create.js.erb и destroy.js.erb
$("#forum_post_<%= forum_post.id %>").html(<%= j render
'forum_posts/likes' %>);
но я знаю, что этот файл даже не вызывается
Есть ли способ из файла format.js, чтобы я мог напрямую вызвать нужный мне файл? или что-то?