0
如何將集合傳遞給包含塊的Rails部分。 (或者,如何繞過Rails魔法)。如何將集合傳遞給包含塊的Rails部分?
我有一種感覺,我從錯誤的角度思考這個問題。任何人都可以指出我正確的方向嗎?
說我有兩個重複的塊索引,就像這樣:
<div class="content">
<table>
<thead>
<tr>
<th>COL1</th>
<th>COL2</th>
<th>COL3</th>
</tr>
</thead>
<tbody>
<% @collectionA.each do |a| %>
<tr>
<td><%= a.col1 %></td>
<td><%= a.col2 %></td>
<td><%= a.col3 %></td>
</tr>
<% end %>
<tr><%= will_paginate @collectionA %></tr>
</tbody>
</table>
<br />
<table>
<thead>
<tr>
<th>COL1</th>
<th>COL2</th>
<th>COL3</th>
</tr>
</thead>
<tbody>
<% @collectionB.each do |b| %>
<tr>
<td><%= b.col1 %></td>
<td><%= b.col2 %></td>
<td><%= b.col3 %></td>
</tr>
<% end %>
<tr><%= will_paginate @collectionA %></tr>
</tbody>
</table>
</div>
我第一輪的枯竭可能是這個樣子。
...
<tbody>
<%= render :partial => 'collections', :collection => @collectionA %>
</tbody>
<%= will_paginate @collectionA %>
...
<tbody>
<%= render :partial => 'collections', :collection => @collectionb %>
</tbody>
<%= will_paginate @collectionB %>
...
但是如果我需要移動will_paginate
到部分爲好,這樣我就可以ajaxify它。
如果我只有一個街區,我會做
<tbody>
<%= render :partial => 'collection' %>
</tbody>
,並在部分
<% @collection.each do |col| %>
STUFF
<% end %>
<%= will_paginate @collection %>
但是,如果我有兩大塊,我怎麼可以通過@收集-A和@collection -B進入部分?
或者我看着這個錯誤的方式?感謝任何指針。
感謝,這看起來很完美。我實際上已經嘗試過,但打了折扣。似乎記得以爲我可以傳遞單個變量而不是集合/數組。一定是做錯了,因爲它似乎現在正在工作!快速提問:如何在使用此方法時傳遞pagination':param_name'。我假設'..:locals => {:param_name =>:my_page}%>'。然後在部分的<%= will_paginate集合中,:param_name => param_name%>'。但是這似乎不適合我。難道我做錯了什麼? –
是的,你必須建立以下locals:':locals => {:collection => collectionA,:param_name =>:my_page}''和你的'will_paginate'相關的建議似乎是正確的。你試過了嗎?它應該工作。 – jdoe
我一直在玩這一段時間,但仍然有一些問題。一切都可以在標準設置下運行 - 在partial:'<%@ users.each do | user |'中調用partial:'<%= render:partial =>'users/user'%> %> ... <% end %><%= will_paginate @users%>。但是,只要我改變它以傳遞一個本地 - 調用partial:'<%= render:partial =>'users/user',:locals => => {:users => @users}%>'部分:'<%users.each do | user | %> ... <% end %><%= will_paginate users%> - 停止工作。這是否發生在其他人身上?或者只是我? –