2011-02-26 64 views
9

我想为Rails应用程序中的某个特定操作有不同的布局。我怎么做?Rails中只有一个特定页面的不同布局

+1

http://guides.rubyonrails.org/layouts_and_rendering.html – ecoologic 2011-02-26 15:59:22

+0

的可能的复制[轨3,怎么加不使用相同的布局应用程序的其余部分的看法?( http://stackoverflow.com/questions/5090084/rails-3-how-add-a-view-that-does-not-use-same-layout-as-rest-of-app) – mlt 2016-10-25 19:50:49

回答

7
layout :resolve_layout 

    . 
    . 
    . 
    private 
     def resolve_layout 
     case action_name 
     when "new" 
      "alternate" 
     else 
      "application" 
     end 
     end 
26
# controller that calls the page 
def action 
    render :layout => 'other' 
end 
+0

所以在我的情况下,我的“def action”是“def homepage”AKA的索引。我制作了一个layout.css.scss文件,并将它放在我的样式表文件夹中,并在渲染线中添加'other'作为'layout',我的应用程序崩溃了。我很困惑我做错了什么。我的新布局文件与我的原始布局文件相同。 – Jubl 2016-04-29 02:06:45

+0

很难说没有检查代码,打开一个新的问题,我可以看看 – ecoologic 2016-05-14 02:15:50

19
class MyController < ApplicationController 
    layout "special", :only => :action 

    def action 
    #action code 
    end 
end 
+0

嗯。事实上,这使得我对该控制器的所有其他操作都没有布局。任何方式让他们回来? – 2011-02-26 16:54:53

+2

我还没有尝试过,但是将另一条线置于默认位置上呢?类似于'布局'正常'#:除了=>:行动' – ecoologic 2011-02-26 17:52:36

+1

@ecologic,这将无法正常工作(无论在轨道3.0.X)。每个控制器只能有一个全局布局声明 – SooDesuNe 2011-09-01 02:40:04

相关问题