为什么`layout nil`不起作用?

Sam*_*ron 12 layout ruby-on-rails

我刚刚将Rails站点从Rails 2升级到Rails 3.2.

在我的旧控制器上我有:

class Foo::BarController < ApplicationController
   layout nil 
   ... 
end
Run Code Online (Sandbox Code Playgroud)

但是现在我升级到Rails 3似乎我需要将其更改为:

layout false
Run Code Online (Sandbox Code Playgroud)

Rails指南的文档声称layout nil应该正常工作:

布局声明在层次结构中向下级联...

class OldPostsController <SpecialPostsController
布局为零

我的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)
Run Code Online (Sandbox Code Playgroud)

这是一个记录在案的变化,还是一个相关的宝石猴子修补的东西?

Mis*_*cha 22

API解释如下:

如果指定的布局是:

  • 字符串:字符串是模板名称
  • 符号:调用符号指定的方法,该方法将返回模板名称
  • false:没有布局
  • true:举起一个 ArgumentError
  • nil:使用继承强制默认布局行为

所以从无nil布局改为"使用继承强制默认布局行为" 的含义.似乎Rails指南中的解释是不正确的.

  • jeez ...这个rails 3升级是不停止服用的礼物 (6认同)
  • 我打赌有人认为他们是真正的聪明,因为零值不同于假值. (3认同)