如果我想使用某个动作的布局(例如,show动作)与controller.rb文件顶部声明的布局不同,我该怎么做?这必须在轨道中可行,但我似乎无法找到任何相关内容。
答案 0 :(得分:42)
render :layout => 'otherlayout'
答案 1 :(得分:37)
layout 'layout', :only => [:first_action, :second_action]
layout 'second_layout', :only => [:third_action, :fourth_action]
唐也是对的,只取决于你的申请更干(或干?)
修改强>
我以前的代码是错误的。您不能多次指定layout
函数。我在网上找到了这个动态布局渲染的解决方案:
class OrdersController < BaseController
layout :determine_layout
private
def determine_layout
%w(new).include?(action_name) ? "some_layout" : "public"
end
end
答案 2 :(得分:0)
以下示例将所需的布局应用于特定操作,否则,它使用默认布局(layouts / application.html.erb)。
class ArticlesController < ApplicationController
layout "article_editor", only: [:new, :edit]
def index
# default layout
end
def new
# article_editor layout
end
def edit
# article_editor layout
end
end