我正在尝试按照以下方式做一些事情:
if start_date?
query = where("datetime > :start_date", :start_date => start_date)
end
if end_date?
query = where("datetime <= :end_date", :end_date => end_date)
end
if client
query = where("client.name LIKE :client", :client => client)
end
if staff
query = where("staff.name LIKE :staff", :staff => staff)
end
paginate :per_page => 20, :page => page,
:conditions => query,
:order => 'datetime'
我找不到任何关于如何构建查询并将其与分页插件一起使用的示例。当然,查询还不正确,因为我必须弄清楚如何进行连接,以便我可以查询其他表中的其他属性,但除此之外,您如何构建查询以在条件下使用?
最佳答案
您想将 .paginate
调用放在 where 调用链的末尾,就像这样(所有一行,为了便于阅读而分开)
SomeClass.where("datetime > :start_date", :start_date=>start_date).
where("datetime < :end_date", :end_date=>end_date).
paginate(:per_page=>20,:page=>page)
如果你想有条件地添加条件,你也可以这样做,比如:
x = SomeClass
x = x.where("datetime > :start_date", :start_date=>start_date) if start_date
x = x.where("datetime < :end_date", :end_date=>end_date) if end_date
x.paginate(:per_page=>20,:page=>page)
关于ruby-on-rails - 在事件记录中使用带有构造查询的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520881/