Ruby-on-Rails: как изменить параметр рендеринга по умолчанию: макет на «ложь»? - PullRequest
3 голосов
/ 20 октября 2011

Вот и все. Я хочу, чтобы большинство представлений в моем приложении Ruby on Rails 3.1 отображалось без макета, так как они будут назначены элементам div с помощью jQuery, но я не хочу переходить к каждому действию контроллера и устанавливать render :layout => false в блоке response_to .

Можно ли изменить рендеринг представлений по умолчанию на :layout => false? Как мне настроить это?

Спасибо за вашу помощь

EDIT

Я также мог бы решить эту проблему так, чтобы что-то вроде:

if request.xhr?
    format.html { render :layout => false }
end

будет выполняться в каждом блоке response_to.

1 Ответ

3 голосов
/ 20 октября 2011
class UserController < ApplicationController
   layout nil # this sets default layout for all actions in this controller
end

Если вам нужно более продвинутое поведение (например, определение de-layaout во время выполнения), вы также можете передать блок, который возвращает nil или правильное имя макета:

class UserController < ApplicationController
   layout lambda{ ...your stuff... }
end
...