2011-12-27 16 views
4

は私が持っている私のコントローラでは:私の見解ではRails 3:現在のレイアウトの名前を取得する方法は?

render :layout => 'mobile' 

私は「モバイル」、この場合には、レイアウトの名前を取得できるようにしたいです。

コントローラ名やアクション名は必要ありません...レイアウトの名前だけです。

私はRails 3.0.6を使用しています。

+1

参照:http://stackoverflow.com/questions/3326579/rails3-get-current-layout-name-inside-view –

+0

@ZekeTemplin私のために動作しません。私の例では、 ':_layout'は' mobile'ではなく 'application'を出力します。 – Shpigford

答えて

0

あなたのコントローラ内の変数を作るいけない理由:

@layout = 'mobile' 
render :layout => @layout 

、あなたはあなたのビューで

+4

それを行うためのより良い方法があるので、 'controller.send:_layout'です。 –

+1

@RyanBiggそれは私のためには機能しません。私の例では、 ':_layout'は' mobile'ではなく 'application'を出力します。 – Shpigford

+1

レンダリング:レイアウト=>「モバイル」 – tmaximini

10

@layoutにアクセスすることができ、私は遅れていたが、これ試してみてください。

controller.sendを(:_layout).virtual_path.name

のRailsでテスト3.2

+5

これは動作しますが、 'virtual_path.name'は必要ありません –

関連する問題