2011-02-26 60 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

相關問題