ruby-on-rails - rails : Make a repeating partial in groups

标签 ruby-on-rails ruby-on-rails-3.1 partial

假设我有一堆项目,我想遍历它们。我可能有一个 _item 部分来呈现这些。

我可以这样渲染:

= render :partial=>'item', :collection => @items, :as => :item

对于这个例子,假设部分非常简单,就像这样(在 haml 中):

.item= item.name

但是,我希望将这些项目按行分组,因此标记最终会是这样:

<div class="item_row">
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
</div>
<div class="item_row">
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
</div>
<div class="item_row">
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
  <div class="item">Item Name</div>
</div>

我并不总是提前知道会有多少项目/我需要多少行。

你如何创建一个部分,或者包装一个部分,所以它会像这样呈现在组中?

最佳答案

您可以使用 Enumerable 的 each_slice 一次将这 5 个分组并连续显示:

<% @items.each_slice(5) do |items_for_row| %>
  <div class="item_row">
    <%= render :partial => "item", :collection => items_for_row, :as => :item %>
  </div>
<% end %>

关于ruby-on-rails - rails : Make a repeating partial in groups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8039702/

相关文章:

ruby-on-rails - 在 Rails 4 中,如何根据当前页面更改导航栏中的文本?

带有 Rails JSON API 的 Javascript 客户端框架 - 如何进行集成测试?

ruby-on-rails - 使用 Wicked PDF 将 PDF 附加到电子邮件时如何指定布局

ruby-on-rails - Rails 上的 ruby : coffee-script-source locked at 1. 10.0

ruby-on-rails - 无法导出 rails 中超过 5000 行

ruby-on-rails - Rails 3.1 每当 gem 在开发中工作但不在生产中工作时。为什么?

mysql - 使用复合连接查找 ActiveRecord

text - UWP 中 'TextBlock' 的绑定(bind)部分

ruby - 尝试使用 nokogiri 获取 xml 文件中 cdata 标签内的内容

ruby-on-rails - 你应该只在部分中使用局部变量吗?