Не найден шаблон для SomeController # создайте голову рендеринга: no_content - PullRequest
0 голосов
/ 06 ноября 2018

Я создаю приложение 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, чтобы я мог напрямую вызвать нужный мне файл? или что-то?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...