ruby-on-rails - 每 3 项新行

标签 ruby-on-rails ruby

<分区>

我想一次渲染我的 3 项列表,以便它们以三行的形式输出。我目前正在使用

<div class="row">
  <div class="three columns">
 <% @items.each do |f|%>
   <div class="item">
     <%= f.content %>
       </div>
     <% end %>
  </div>
</div>

在一行中输出所有规则 -

<div class="row">
  <div class="three columns">
   <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
  </div>
</div>

我想要做的是为每三个返回的项目输出一行,所以 -

<div class="row">
  <div class="three columns">
   <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
  </div>
</div>
<div class="row">
  <div class="three columns">
   <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
       <div class="item">
     This is the content
       </div>
  </div>
</div>

谢谢

最佳答案

除了前面提到的 each_slice 之外,Rails 还有一个 in_groups_of您可以像这样使用的方法:

<% @items.in_groups_of(3, false).each do |group| %>
  <div class="row">
    <div class="three columns">
      <% group.each do |item| %>
        <div class="item">
          <%= item.content %>
        </div>
      <% end %>
    </div>
  </div>
<% end %>

each_slice 几乎相同,除了需要输出空白div 的场景变得更加清晰,如下所示:

<% @items.in_groups_of(3).each do |group| %>
  <div class="row">
    <div class="three columns">
      <% group.each do |item| %>
        <div class="item">
          <%= item.content if item %>
        </div>
      <% end %>
    </div>
  </div>
<% end %>

in_groups_of 默认用 nil 填充最后一组中缺失的项目,因此它将进行最后几次迭代和 if item 检查将通过在 nil 上调用 content 来确保它不会爆炸。

in_groups是另一个有趣的用于 View 格式化的方法。

关于ruby-on-rails - 每 3 项新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14528919/

相关文章:

ruby-on-rails - 为什么 Rails 生成运行类而不是对象的 config.ru?

ruby-on-rails - Rails - 使用 JSON 从 Controller 返回带有对象的附加属性

ruby-on-rails - 如何使用opencv-ruby gem裁剪图像?

ruby - HTTP 摘要 + Rspec

arrays - 使用键数组遍历嵌套的 Ruby 哈希

ruby-on-rails - Rails 3 中的联系我们表格

ruby-on-rails - 如何使注册页面成为设计中的根页面?

ruby-on-rails - 发出 JSON 错误输出而不是 JSON 请求的 HTML

ruby - bundle install --binstubs 为我们提供了什么?

ruby-on-rails - Ruby on Rails 中的多对多多态关联