使用布局进行特定操作

时间:2011-04-02 18:05:29

标签: ruby-on-rails

如果我想使用某个动作的布局(例如,show动作)与controller.rb文件顶部声明的布局不同,我该怎么做?这必须在轨道中可行,但我似乎无法找到任何相关内容。

3 个答案:

答案 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
  

来源:apidock.com/rails/Actio...

答案 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