0

我有以下 SQL 查询,用于从 mySQL 数据库中获取一些行:

SELECT code_ver, result FROM mastertest WHERE date >= DATE_SUB( (CURDATE()) , INTERVAL 90 DAY) ORDER BY date DESC;

这个查询给了我过去 90 天的数据。现在我想在我的 html.erb 页面(视图)中一次显示 10 天的数据。我知道可以使用“will_paginate”和“kaminari”宝石来完成分页。但是我不确定如何在某些条件下查询数据库,如上所示。

有人可以在这里帮我写代码吗?

4

1 回答 1

1

这就是在 ActiveRecord 中构建它的方式:

Mastertest.where('date >= ?', Time.now - 90.days ).order('date DESC').select("code_ver, result")

从这里,您可以链接 will_paginate 或 kaminari 方法,或者如果您愿意,也可以滚动您自己的方法。如果您将经常使用它,您可能希望将该查询滚动到一个类方法中:

class Mastertest
  def self.last_90_days
    where('date >= ?', Time.now - 90.days ).order('date DESC').select("code_ver, result")
  end

  ## here's a simple pagination example:
  def self.page(page,per_page)
    limit(per_page).offset((page - 1) * per_page)
  end

end

Mastertest.last_90_days.page(1,20) #=> [...]
于 2012-11-01T22:46:19.693 回答