Подтвердить что ты не робот

Как сделать частичную строку?

Как сделать частичную строку, поэтому я могу включить ее как часть ответа JSON? Я должен поставить его в ответ JSON, чтобы дать возможность для возможного сообщения об ошибке. Следующий код дает ошибку сервера 500. Если я использую только обычный render, то на удивление это работает. Ну, он отправляет обратно простой HTML, который не может быть проанализирован как Javascript.

Код

respond_to do |format|
   format.html { redirect_to post_path(post) }
   format.js { 
     { 
       error: "",
       content: (render_to_string partial: '/comments/comment', locals: {comment: comment}, layout: false )  
     } 
   }
end

Ошибка

Шаблон отсутствует     Отсутствует комментарий к шаблону /create, application/create с помощью {: locale = > [: en],: formats = > [: js,: html],: handlers = > [: erb,: builder,: raw,: ruby,: jbuilder,: haml]}. Поиск: * "C:/Users/Chloe/workspace/project/app/views"

Работает, но отправляет обратно обычный HTML

render partial: '/comments/comment', locals: {comment: comment}, layout: false
4b9b3361

Ответ 1

Хорошо, я понял. Мне пришлось добавить render json:. Я думал, что раньше я это пробовал, и это дало мне двойную ошибку визуализации. Я думаю, когда вы render_to_string, тогда это нормально, чтобы иметь более одного рендера.

respond_to do |format|
   format.html { redirect_to post_path(post) }
   format.js { 
     render json: { 
       error: flash[:error],
       content: (render_to_string partial: '/comments/comment', locals: {comment: comment}, layout: false )  
     } 
   }
end