在 HTML 页面上循环浏览 Ruby 数组中的值

Posted

技术标签:

【中文标题】在 HTML 页面上循环浏览 Ruby 数组中的值【英文标题】:Cycle through values in an Ruby Array on a HTML page 【发布时间】:2012-10-17 01:34:48 【问题描述】:

我正在使用这个查询从我的控制器中的数据库中获取一些行:

@main = connection.execute("select code_ver, result from mastertest;")

现在在我的 html.erb 中,我将结果显示在如下表格中:

<% @level1.each do |row1| %>
<table id="tbl_main1" name="tbl_main1">
    <tr bgcolor="#D1D1D1">
        <td  <%= row1[0] %>></td>
        <td ><%= row1[2] %></td>
        <td ><%= row1[1] %></td> 
    </tr>
</table>

我在这里获取了很多行。但我想一次只显示 15 个结果,并且有一些按钮“下一个”和“上一个”可以循环显示结果。我该怎么做?

【问题讨论】:

javascript 分页或will_paginate 会做 javascript 分页会节省一次又一次地请求服务器,而不是will_paginate @user1438735 :你能给我看一些示例代码吗?谢谢 【参考方案1】:

我建议创建一个 Active Record 模型来表示您的 mastertest 数据库表。然后,在 will_paginate gem 的帮助下,您可以在控制器中执行以下操作:

@mastertests = MasterTest.all.paginate(:page => params[:page], :per_page => 15)

然后在你看来:

<% @mastertests.each do |mastertest| %>
  <td><%= mastertest.code_ver %></td>
  <td><%= mastertest.result %></td>
<% end %>
<%= will_paginate @mastertests %>

will_paginate 视图助手将生成分页链接,如 [prev] [1] [2] [3] [next]。查看 github 上的 will_paginate gem 了解更多选项。

【讨论】:

【参考方案2】:

看看这颗宝石https://github.com/mislav/will_paginate

Will_paginate 可能对您正在寻找的内容有用。

那里还有其他的宝石,但我发现 will_paginate 可以满足分页需求。

编辑 如果您打算对您正在做的数组进行分页,您可以这样做:

require 'will_paginate/array'

然后your_array.paginate page: x, per_page: y

x 是您要显示的页面,y 是每页的项目数。

【讨论】:

我找不到任何代码告诉我如何在执行 sql2 类型查询时使用分页....你能帮帮我吗?【参考方案3】:

如果您使用的是 Rails 3,请查看 kaminari 进行分页:https://github.com/amatsuda/kaminari。您可能对Paginating a generic Array object 功能感兴趣。但是,请记住,这不会为您的 SQL 查询添加偏移量和限制。

Kaminari 被广泛认为比 Rails 3 中的 will_paginate 更好,因为它利用了 Rails 作用域并且不会全局污染对象。

【讨论】:

以上是关于在 HTML 页面上循环浏览 Ruby 数组中的值的主要内容,如果未能解决你的问题,请参考以下文章

Ruby 动态更新嵌套数组中的值

比较数组中的值并删除 Ruby/Rails 中不同的项目

每个循环都有基本数组 vs ruby​​ 数组

javascript中知道一个数组中的一个元素的值,如何获取数组下标

如何使用for循环在mpdf PHP中打印数组中的值

jquery 循环数组输出显示在html页面