Подтвердить что ты не робот

Почему `layout nil` не работает?

Я только что обновил сайт Rails с Rails 2 до Rails 3.2.

На моем старом контроллере у меня было:

class Foo::BarController < ApplicationController
   layout nil 
   ... 
end

Однако теперь, когда я обновился до Rails 3, мне кажется, мне нужно изменить его на:

layout false

Документация Rails Guides утверждает, что layout nil должна работать нормально:

Объявление макета каскадом вниз в иерархии...

класс OldPostsController < SpecialPostsController
   макет nil

В моем Gemfile.lock

у меня есть следующие соответствующие драгоценные камни:

GEM

actionpack (3.2.6)
  activemodel (= 3.2.6)
  activesupport (= 3.2.6)
  builder (~> 3.0.0)
  erubis (~> 2.7.0)
builder (3.0.0)
erubis (2.7.0)
haml (3.1.6)

jquery-rails (2.0.2)
  railties (>= 3.2.0, < 5.0)

Является ли это документированным изменением где-нибудь, или это связанная с этим обезьяна?

4b9b3361

Ответ 1

API объясняет это следующим образом:

Если указанный макет:

  • строка: строка - это имя шаблона
  • символ: вызовите метод, указанный символом, который вернет имя шаблона
  • false: нет макета
  • true: поднять ArgumentError
  • nil: принудительное поведение макета по умолчанию с наследованием

Таким образом, значение nil изменилось без макета на "принудительное поведение макета по умолчанию с наследованием". Кажется, что объяснение в Rails Guides неверно.