Rails 3:如何指定用于特定方法的布局,但是否则使用默认的application.html.erb?

Bea*_*red 3 ruby-on-rails

我有一个带有一些方法的控制器,我想对所有这些方法使用默认的application.html.erb布局,除了#list方法.所以我已经在#list方法的控制器顶部声明了特定的布局,就像这样......

class MyController < ApplicationController
   layout "customlayout", :only => [:list]
Run Code Online (Sandbox Code Playgroud)

但似乎现在我已经丢失了该控制器中所有其他方法的默认application.html.erb布局.我错过了什么?

非常感谢你的智慧!

Mat*_*off 15

使用方法设置布局.

class MyController < ApplicationController
  layout :resolve_layout

private
  def resolve_layout
    case action_name
    when 'list'
      'customlayout'
    else
      'application'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

layout如果你愿意,你也可以提供一个proc .