- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 will_paginate
2.3.x gem,我正在尝试获取 WillPaginate::Collection 中对象的所有 ID 的数组.有没有一种简单的方法可以迭代所有集合中的项目?使用 ActiveRecord 集合,这很简单:
all_ids = MyObject.find(:all).map { |o| o.id }
但是,当分页时,集合只返回第一页中的 N 个元素:
not_all_ids = MyObject.paginate(:page => 1).map { |o| o.id }
我想要的是遍历集合中的所有页面。基本上,我正在寻找一种检索下一页的方法。有什么想法吗?谢谢。
编辑 - 我正在使用 rails 2.3。此外,我在某些条件下使用分页,但为了简化而放弃了它们:
MyObject.paginate(:conditions => [...], :include => [...], :page => 1)
最佳答案
你可以这样做:
ids = MyObject.select("id").paginate(:page => 1)
if ids.total_pages > 1
(2..ids.total_pages).each do |page|
ids << MyObject.select("id").paginate(:page => page)
end
end
ids = ids.map(&:id)
但为什么在这种情况下使用分页?
ids = MyObject.select("id").map(&:id)
会更快,并且会使用更少的资源......如果你的数据库包含 10000 个元素并且你一次迭代 10 个,你将对你的数据库进行 1000 次调用 vs 1 :-)
ps: 我正在使用 .select("id") 所以生成的请求是:
SELECT id from users;
对比
SELECT * FROM users;
我还使用了一个很好的快捷方式 map(&:id),这相当于 .map { |o| o.id
关于ruby-on-rails - Will_Paginate - 如何获取所有分页对象 ID 的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792679/
我有一个搜索模型,它构造一个基本上是原始 SQL 的字符串。这个字符串通过一个find_by_sql调用运行,在下面第5行返回给controller(@search.query ) 所以我发现插入以下
我有一个 Rails 3 应用程序(附加了 Spree 0.40)。 在我的 ProductsController 操作 index 中,我有产品列表和下面的 will_paginate 帮助程序。
我一直在关注railscast在无尽的页面上,并且之前对 will_paginate 做了同样的事情,但是我遇到了错误,但是我尝试在我的具体情况下实现它。 will_paginate gems 工作得
我正在使用 will_paginate gem 提供的示例代码和 CSS 在我的页面上提供格式良好的分页控件。但是,控件不会水平对齐。相反,它们都垂直堆叠并位于页面中央。我怎样才能把它们放在一条水平线
我目前有一个评论模型,在微博下发表,并且都显示在同一页面上。问题是两者都显示在同一页面上并且都已分页,我正在尝试采用 facebook 方法进行微张贴。这是下面的问题: 两个分页的链接变成了这个 hr
主持人: 应用程序/演示者/games_presenter.rb class GamesPresenter attr_reader :games, :next_page, :previous_pa
假设我有一个 ActiveRecord 查询,它有 100 万条记录作为结果,我正在使用 WillPaginate(当然)对这个结果进行分页。 所以,我的疑问是: 所有这 100 万条记录都以某种方式
我有一个表格,每页分页 20 个: id title 我想让
我正在尝试在我的 rails 应用程序中使用 will_paginate 进行分页。我正在关注 Michael Hartl 的 Rails 教程。 在我的 Controller 中,我有 def in
我已经安装了最新版本的 will_paginate,我正在尝试像这样在我的 View 中使用它: @courses = Course.paginate(:page => params[:page])
will_paginate 插件生成附加页面参数的当前 url 的分页。 有没有办法改变这种情况?我需要它来分页到另一个 Controller / Action 加上一些参数。 最佳答案 will_p
我将 will_paginate 用于联系人显示 View 中的嵌套注释。联系人 Controller 如下所示: @contact = Contact.find(params[:id], :
我使用 will_paginate 来显示从包含联接和 select 语句的查询返回的数据。当我对数据进行分页时,条目数等于执行 select 语句之前的条目数,即使在查询之后调用分页,并且查询包含的
我正在尝试对协会进行分页,但我遗漏了一些东西。 这是我需要使用 .paginate(:page => params[:page], :per_page => 25) 进行分页的地方。如果我理解正确的话
我的设置:Rails 2.3.10,Ruby 1.8.7 我正在使用 will_paginate 插件,对于特定用户,我需要实现一个排行榜功能,显示他的评分所属的页面,有没有办法做到这一点? 更新:
我有两个模型 Product 和 Price。 Product 可以有多个价格,每个都有不同的 created_at,因此我可以随时了解产品的价格历史记录。 我想在每个产品旁边显示具有最新价格的产品列
有什么方法可以让我只显示当前页面链接,当我在第一页时隐藏> 链接我在最后一页。 应该是这样的 第一页:1 |下一步>> 在最后一页(因为有 4 页):> 目前我得到的是:> 我的代码 "paginat
我正在使用 will_paginate,我遇到的问题是当我单击 will_paginate 选择中的特定页码时。例如,如果在选择上单击 2,页面将重新加载 page=2。但是在选择时它仍然被选为页面
我不想列出每页的编号。我们如何才能使用 will_paginate 显示“上一个”和“下一个”? 查看 etc... 控制者 class ActivitiesController para
我在我的 Rails 应用程序中使用 will_paginate gem 并循环遍历在页面上呈现的模型实例数组,每页限制为 5 个。在我添加 will_paginate 之前,我用一个简单的 对每个
我是一名优秀的程序员,十分优秀!