13

Rails サイトを Rails 2 から Rails 3.2 にアップグレードしました。

私の古いコントローラーでは、次のものがありました。

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

ただし、Rails 3 にアップグレードしたので、次のように変更する必要があるようです。

layout false

Rails Guidesのドキュメントは、正常に動作するはずだと主張していlayout nilます。

レイアウト宣言は、階層内で下方にカスケードします ...

class OldPostsController < SpecialPostsController
レイアウト nil

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)

これはどこかで文書化された変更ですか、それとも関連する gem monkey が何かにパッチを当てているのでしょうか?

4

1 に答える 1

25

APIは次のように説明しています。

指定されたレイアウトが次の場合:

  • 文字列:文字列はテンプレート名です
  • シンボル:シンボルで指定されたメソッドを呼び出します。これにより、テンプレート名が返されます。
  • false:レイアウトはありません
  • true:上げるArgumentError
  • nil:継承を使用してデフォルトのレイアウト動作を強制する

そのため、nilレイアウトなしから「継承を使用してデフォルトのレイアウト動作を強制する」に変更されました。Railsガイドの説明が間違っているようです。

于 2012-07-06T02:59:34.383 に答える