2013-10-14 153 views
6

我想從控制器渲染不同的部分到我的索引視圖,這取決於我收到的參數。 我有我的控制器內一個簡單的,除非,其他條件檢查PARAMSRails從控制器渲染部分

def index 
unless params[:check].nil? 
    render :partial => /layout/check 
else 
    render :partial => /layout/not_check 
end 
end 

和我有文件_check.html.erb和not_check.html.erb到該文件夾​​佈局/

現在,我怎麼能顯示我的索引視圖內的偏見? 目前,我只能將部分視圖單獨視爲單個視圖,而不是在請求的視圖內。

+0

放渲染代碼爲index.html.erb – Rubyman

+0

llayout的意見,但他們有一些共同的UI。一般來說,所有不同的佈局必須放在app/views/layouts /下。 partials _check和_not_check應該位於ur控制器視圖內 –

回答

4

更好的辦法是從index.html.erb

<% unless params[:check].nil? %> 
    <%= render :partial => '/layout/check' %> 
<% else %> 
    <%= render :partial => '/layout/not_check' %> 
<% end %> 

讓你的高清指數應該是這樣

def index 
    respond_to do |format| 
    format.html 
    end 
end 

我不明白你正在嘗試調用諧音除了部分與控制器/操作相關的部分之外,不應該在佈局中進行佈局,除非它們提供了一些佈局。

+0

請在您的答案中查看ERB和Ruby。 – kristinalim

0

如果你想呈現一個佈局(而不是實際的視圖信息),請嘗試使用render layout

def index 
    if params[:check].nil? 
    render layout: "not_check" 
    else 
    render layout: "check" 
    end 
end