2009-07-14 8 views
4

私はこのようなコレクションでは、部分的にレンダリングしています。部分的内部収集カウンター

<%= render :partial => 'issues/issue', :collection => @issues %> 

、私はそれは、コレクション内の最後でない限り


要素をレンダリングします。私はもちろん、その後、私の部分

<% unless issue_counter + 1 == issue_count %> 
    <hr /> 
<% end %> 

内にこれを置く部分この

<%= render :partial => 'issues/issue', :collection => @issues, :locals => {:issue_count => @issues.length } %> 

ようにレンダリング可能性がありますが、私は明示的にレンダリング呼び出しでローカルに設定する必要がありますする必要はありません、と私コレクションは常に@issuesと呼ばれるわけではないので、インスタンスvaribaleにアクセスするだけではありません。コレクションの長さに自動的にアクセスしてコレクション内のどこにオブジェクトがあるかを伝える方法はありますか?まだない場合は、issue_countローカルを自動的に取得するような方法でこれを追加することは可能ですか?これに関する助けは大いに感謝されます。

Thxを、

-C

答えて

4

render :partial => X, :collection => Yコールに:spacer_templateオプションを指定できます。使用方法については、ActionController::Base documenationを参照してください。

単純な<hr />要素の部分ファイル全体を指定するのは大変だと思われますが、このルートを使用すると意図が明確になり、無関係な仕切りマークアップが部分的になくなります。

+0

これは本当に部分的な内部のカウントを私に得ることはありませんが、それはそれの必要性を排除するように見えます:) thx -C –

0

私はあなたがrender_partial_collection方法を変更した場合にこれを実現することができると思います。

並べ替えのないリストの代わりにCSSを使用するように思えます。マークアップHRをコレクションにセマンティック的に分離するのではなく、マークアップHRをスタイルに挿入する気がします意味論)。

+0

はい、おそらくそうですが、速いです。また、それを行う方法を知っていることは良いことです:) –

+0

  • タグの代わりに、あなたの部分の内容をラップするだけではありません。 –