4

私はこのようなコレクションでパーシャルをレンダリングしています:

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

パーシャルの中に、レンダリングしたい


コレクションの最後でない限り、要素。もちろん、このようにパーシャルをレンダリングすることもできます

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

それからこれを私のパーシャルの中に入れてください

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

ただし、render呼び出しでローカルを明示的に設定する必要はありません。また、コレクションが常に@issuesと呼ばれるとは限らないため、インスタンスの変数にアクセスすることはできません。パーシャル内のコレクションの長さに自動的にアクセスして、オブジェクトがコレクションのどこにあるかを知る方法はありますか?まだない場合は、issue_countを自動的にローカルに取得するような方法でこれを追加することはできますか?これに関するどんな助けも大いに感謝されるでしょう。

どうも、

-C

4

2 に答える 2

4

:spacer_templateオプションをrender :partial => X, :collection => Y呼び出しに指定できます。ActionController::Base使用方法については、ドキュメントを参照してください。

単純な要素の部分ファイル全体を指定するのはおそらく面倒に感じます<hr />が、この方法を使用すると、意図が明確になり、アイテムの部分部分が無関係な区切りマークアップから解放されます。

于 2009-07-24T16:47:46.097 に答える
0

render_partial_collection メソッドを修正すれば実現できると思います。

補足として: 順序付けられていないリストで代わりに CSS を使用する必要があるように思えます: コレクション内のアイテムを意味的に分離するために使用するのではなく、スタイルにマークアップ HR を挿入しているように感じます (マークアップ セマンティクス)。

于 2009-07-14T23:00:59.980 に答える