13

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

在我的旧控制器上,我有:

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

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

layout false

Rails Guides上的文档声称layout nil应该可以正常工作:

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

类 OldPostsController < SpecialPostsController
布局无

我的 Gemfile.lock 中有以下相关宝石

宝石

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)

这是某处记录在案的更改,还是相关的宝石猴子修补了什么?

4

1 回答 1

25

API是这样解释的:

如果指定的布局是:

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

所以nil从没有布局的意思变成了“强制默认布局行为与继承”。似乎 Rails Guides 中的解释不正确。

于 2012-07-06T02:59:34.383 回答