2013-10-14 22 views
6

私は受け取ったパラメータに応じて、コントローラからインデックスビューに異なる部分をレンダリングしようとしています。 私は、のparamsレンダリングはコントローラから部分的にレンダリングされます

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 /の下に配置する必要があります。部分チェック_checkと_not_checkは、コントローラビューの内部に存在する必要があります。 –

答えて

4

良い方法は、私はあなたがしようとしているのか理解していないので、あなたのDEFインデックスはこの

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

ようになりindex.html.erb

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

からパーシャルを呼び出すことであろうコントローラー/アクションに関連するdo but but partialは、レイアウトに対応していない限り、レイアウト内にあるべきではありません。

+0

答えの中でERBとRubyを確認してください。 – kristinalim

0

あなたはレイアウト(およびない実際のビュー情報)をレンダリングしようとしている場合は、render layout

def index 
    if params[:check].nil? 
    render layout: "not_check" 
    else 
    render layout: "check" 
    end 
end 
関連する問題