Почему `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)
Является ли это документированным изменением где-нибудь, или это связанная с этим обезьяна?
Ответы
Ответ 1
API объясняет это следующим образом:
Если указанный макет:
- строка: строка - это имя шаблона
- символ: вызовите метод, указанный символом, который вернет имя шаблона
-
false
: нет макета
-
true
: поднять ArgumentError
-
nil
: принудительное поведение макета по умолчанию с наследованием
Таким образом, значение nil
изменилось без макета на "принудительное поведение макета по умолчанию с наследованием". Кажется, что объяснение в Rails Guides неверно.