Что делает код ниже: макет делает?
respond_with( @comment, :layout => !request.xhr? )
Код выше обрабатывает рендеринг другого типа MIME в зависимости от типа данных запроса (если я правильно понимаю). Что делает тег :layout?
:layout
Из документации для ActionController :: Responder
response_with также позволяют передавать параметры, которые перенаправляются в базовый вызов рендеринга.Эти параметры являются только применяемыми сценариями успеха.Например, вы можете сделать следующее в методе создания выше:
Так что :layout => !request.xhr? будет передавать эту опцию в рендеринг.Поэтому если бы у вас был HTML-ресурс, называемый обычным запросом, он использовал бы стандартный макет, но HTML-запрос, сделанный как XmlHttpRequest, не использовал бы макет
:layout => !request.xhr?
XmlHttpRequest
Вам не нужно использовать форматирование способом.Это тоже прекрасно работает:
respond_to :html; :json respond_with(@product, :layout => "landingpage")