【问题标题】:Ruby/Rails - Limit the size of a object/hashRuby/Rails - 限制对象/散列的大小
【发布时间】:2011-02-21 10:50:22
【问题描述】:

我有一个名为 @events 的对象,其中包含从我的模型的查找条件中提取的大约 50 条记录。

我目前正在像这样在我的视图中显示@object 的结果......

<% for event in @events %>
    <p><%= @event.name %></p>           
<% end %>

我不想显示整个 50 条记录,而是希望将集合缩小到大约 10 条记录,以便它在页面上显示得更好。

我不能在查找条件中使用 :limit,因为该对象是由各种循环组成的,在每次迭代后它都会添加一些特定的记录。

所以问题是我有这个对象@events 有 50 条记录,我如何在它被组合后更改对象以便只保留前 10 条记录?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    首先,如果你想分页,我强烈建议你看看will_paginate

    或者,您可以执行以下操作以仅读取前 10 条记录。

    <% @events.first(10).each do |event| %>
        <p><%= event.name %></p>           
    <% end %>
    

    或最近 10 条记录

    <% @events.last(10).each do |event| %>
        <p><%= event.name %></p>           
    <% end %>
    

    我没有测试它,但你明白了。

    【讨论】:

      【解决方案2】:

      您是希望完全取消其他 40 个,还是只想在每页中提取 10 个以用于显示目的。如果您只是出于显示目的这样做,我会查看 will_paginate gem。您可以通过它的选项进行设置,这样每页只显示 10 个结果。

      【讨论】:

        【解决方案3】:

        看看will_paginatekaminari。它们都旨在限制从数据库中检索的记录,并为您的视图提供帮助程序,以提供通常的页面数和当前页面列表。

        Will_paginate 已经存在了一段时间,并且非常灵活。 Kaminari 比较新,看起来它有一个更干净的界面。

        【讨论】:

          猜你喜欢
          • 2021-08-10
          • 1970-01-01
          • 1970-01-01
          • 2011-04-21
          • 2017-10-31
          • 1970-01-01
          • 2012-11-19
          • 1970-01-01
          相关资源
          最近更新 更多