Адаптивно отображать представления в Ruby on Rails - PullRequest
1 голос
/ 11 октября 2011

В приложении RoR у меня есть все частичные представления и одна страница макета.Если запрос ajax, я хочу вернуть только частично визуализированный HTML, в противном случае я хочу вернуть полностью визуализированную страницу HTML.

Какой самый эффективный способ сделать это в RoR?Я бы предпочел сделать это на уровне приложения, а не в каждом отдельном действии контроллера.

Ответы [ 2 ]

0 голосов
/ 11 октября 2011

Я не знаю, насколько это распространено, но с PJAX я модифицирую метод рендеринга в моем контроллере приложения:

def render(options = nil, extra_options = {}, &block)
 if request.headers['X-PJAX'] == 'true'
   options = {} if options.nil?
   options[:layout] = false 
 end
 super(options, extra_options, &block)

конец

Я не уверен, но я бы предположил, что вы могли бы сделать то же самое, проверив request.xhr?

0 голосов
/ 11 октября 2011

В вашем контроллере:

if request.xhr?
  render :update do |page|
    page.replace_html 'element_id', :partial => 'partial_for_ajax'
  end
end

По вашему мнению, просто вызовите это действие контроллера # через AJAX, и контроллер заменит ваш элемент 'element_id' частичным содержимым.

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