2010-02-16 55 views
2

我試圖在動作中編寫渲染,但佈局行爲不同,爲什麼?如何在控制器中呈現工程?爲什麼它不使用佈局?

def show 
    # assuming we have a partial in app/views/shared/_panel_show.html.erb 
    #render "shared/_panel_show" # have layout 
    #render "/shared/_panel_show" # without layout 
    #render "shared/panel_show" # Template is missing 
    #render :partial => "shared/panel_show" # without layout 
    render :partial => "/shared/_panel_show",:layout => "application" # have layout 
end 

我想呈現的部分,並按照控制器的佈局。

+0

它有什麼不同?你不應該這樣做:render:partial =>「/ shared/panel_show」,:layout =>「application」? – marcgg

+0

是的,我可以。但我想使用控制器定義的佈局。當我改變全球佈局時,我不想修改很多地方。 – allenwei

回答

3

部分的一點是它只渲染視圖的一部分並呈現它沒有任何佈局。

我會建議創建一個新的視圖(和我們的控制器中的動作),說共享/ full_panel_show,它只是呈現部分。

<%= render :partial => 'shared/panel_show' %> 

現在在你的控制器呈現新觀點:

def show 
    render :action => 'shared/full_panel_show' 
end 

根據您與放映視圖摻雜的東西,你可以只呈現部分從它的觀點來代替。

+0

如何解釋 #render「shared/_panel_show」#有佈局 – allenwei

0

我有一個解決方案來呈現與佈局的局部在控制器

render 'shared/_panel_show', layout: "layouts/application" 

只是刪除了「局部」的方法然後添加下劃線。

相關問題