2013-10-14 15 views
6

Ich versuche, verschiedene Partials in meine Indexansicht vom Controller zu rendern, abhängig von den Parametern, die ich erhalte. Ich habe einen einfachen, wenn nicht-else Zustand in meinem Controller, der die paramsSchienen rendern teilweise vom Controller

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

Und ich habe die Dateien _check.html.erb und not_check.html.erb in das Ordner-Layout/

Jetzt prüft, Wie kann ich die Teiltöne in meiner Indexansicht anzeigen? Im Moment kann ich das Teil nur als eine einzelne Ansicht visualisieren, aber nicht innerhalb der angeforderten Ansicht.

+0

Rendering-Code Put mit machen in index.html.erb – Rubyman

+0

llayout Ansichten sind, aber sie haben einige gemeinsame UI. Generell müssen alle verschiedenen Layouts unter app/views/layouts/platziert werden. Die Partials _check und _not_check sollten sich in den Ansichten Ihres Controllers befinden –

Antwort

4

Der bessere Weg wäre, das partials anrufen aus index.html.erb

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

so Ihr def Index wie diese

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

ich Sie versuchen, verstand nicht, was aussehen würde tun, aber teilweise, die mit Controller/Aktionen verbunden sind, sollten nicht im Layout sein, es sei denn, sie dienen einige Layout.

+0

Bitte überprüfen Sie ERB und Ruby in Ihrer Antwort. – kristinalim

0

Wenn Sie versuchen, ein Layout (und nicht unbedingt der Ansicht Informationen) versuchen render layout

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