gpt4 book ai didi

ruby-on-rails - rails 4 : Selecting records between current date and given specific date/number of days in past

转载 作者:行者123 更新时间:2023-11-29 11:47:22 26 4
gpt4 key购买 nike

我的 Rail 应用程序中有一个客户表。在客户表中,一个字段是 customer_expiry_date

我想在我的应用程序中添加一个过滤器,这意味着所有符合以下条件的客户都将过期:

  1. 在一 (1) 天内到期。
  2. 七 (7) 天内到期。
  3. 在一 (1) 个月内到期。

我应该如何使用 where 子句编写查询来实现此目的?

我当前的查询是这样的:

@customers = Customer.where.not(customer_expiry_date: nil)

如何根据我的要求将客户选择到三个集合中?

@customers_exp_1day = ?
@customers_exp_1week = ?
@customers_exp_1month = ?

最佳答案

只需在您的模型中写一个范围:

class Customer < ActiveRecord::Base
# your code
scope :expired_in, -> (from_now) {
where.not(customer_expiry_date: nil).where('customers."customer_expiry_date" >= ? AND customers."customer_expiry_date" <= ?', Time.now, Time.now + from_now)
}
end

然后使用它:

@customers_exp_1day = Customer.expired_in(1.day)
@customers_exp_1week = Customer.expired_in(1.week)
@customers_exp_1month = Customer.expired_in(1.month)

现在它将使用最新的更新。

关于ruby-on-rails - rails 4 : Selecting records between current date and given specific date/number of days in past,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35172054/

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