Возможно ли создать html из частичного, а затем отправить html в ответ на вызов ajax? - PullRequest
2 голосов
/ 25 апреля 2011

Мне было интересно, смогу ли я повторно использовать партиал, который генерирует html.

У меня есть запрос ajax, который передает текст на мой контроллер, а затем отвечает некоторым html.

Html, который он возвращает, является тем же html, который я генерирую, используя партиал на той же странице представления.

Могу ли я как-то повторно использовать этот партиал в моем действии контроллера, который отвечает на запрос ajax?

Ответы [ 2 ]

4 голосов
/ 25 апреля 2011

Вы можете проверить, является ли это AJAX-запросом, используя request.xhr? и указать :layout => false, чтобы отобразить только частичный файл без макета.

if request.xhr?
  render :partial => 'partial_name', :layout => false
end
0 голосов
/ 13 мая 2014

Может быть, я понял вопрос по-другому, но вы могли бы сделать что-то вроде этого, чтобы заменить div, в котором вы рендерили партиал на странице просмотра, обновленной версией, используя тот же шаблон:

show.html.хамл

.post
  = render :partial => 'post

и в show.js.haml (ответ AJAX)

== $('.post').html('#{escape_javascript(render :partial => 'post')}');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...