我有以下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'宝石。但我不知道如何使用如上所示的某些条件查询数据库。
有人可以帮我处理代码吗?
答案 0 :(得分: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) #=> [...]