Установить макет от респондента? - PullRequest
1 голос
/ 21 ноября 2010

Я пытаюсь выяснить, как настроить макет из настроенного респондента.Я хочу использовать request.xhr?установить макет для рендеринга в «ajax».Кто-нибудь знает, как это сделать?Я использую Rails 3, и у меня есть ответчик, подобный этому:

module AjaxLayoutResponder
  def to_html
    if request.xhr?
      # do something here to change layout...
    end
    super
  end
end

Мне кажется, что ответчик - лучший способ выполнить переключение раскладки «ajax».

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

Я не согласен с тем, что ответчик - это путь. Вот простое решение, которое я использую в большинстве своих проектов (однако я просто установил макет ajax на ноль):

In application_controller.rb

layout :set_layout

def set_layout
  request.xhr? 'ajax' : 'application'
end
0 голосов
/ 08 декабря 2017

Вы можете просто сделать это:

module AjaxLayoutResponder
  def to_html
    if request.xhr?
      options[:layout] = 'ajax'
    end
    super
  end
end

, потому что то, что вызывается в конце выполнения респондента:

# from https://github.com/plataformatec/responders/blob/master/lib/action_controller/responder.rb
def default_render
  if @default_response
    @default_response.call(options)
  else
    controller.render(options)
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...