:start_date", :start_date => start_date-6ren">
gpt4 book ai didi

ruby-on-rails - 在事件记录中使用带有构造查询的分页

转载 作者:数据小太阳 更新时间:2023-10-29 07:57:10 24 4
gpt4 key购买 nike

我正在尝试按照以下方式做一些事情:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com