ruby-on-rails - 模型中两个日期之间的 Rails 范围
问题描述
我想定义一个范围以在初始化程序中使用它,它将表示类似
class GenerateCsv
def itnialize(start_date:, end_date:)
,,,
end
def call
AdminLog.dates_between(start_date, end_date).each do |record|
Csv.generate ...
end
end
end
如何定义此dates_between
范围以在调用方法中使用它?
在我的AdminLog model
我有created_at
应该用来定义这个范围的字段
model
:
# created_at :datetime not null
class AdminPanelLog < ApplicationRecord
scope :dates_between { |start_date, end_date| }
end
解决方案
我不确定我是否理解你,但也许这就是你想要的?
scope :dates_between, lambda { |start_date, end_date|
where('created_at >= ? AND created_at <= ?', start_date, end_date)
}
编辑:请注意,您可以使用where(created_at: start_date..end_date)
创建“介于”查询 ( WHERE created_at BETWEEN ... AND ...
) 来代替
推荐阅读
- wordpress - 通过自定义字段(元数据)获取订单
- rust - 使用不同的二进制文件(不同的哈希)对相同的代码结果进行货物和交叉编译
- reactjs - 如何将子组件中的表单中的数字添加到父组件中的数字数组中
- java - 如何从 Firebase 检索数据到 ListView(使用自定义数组适配器)
- python - 从字符串列表中提取子字符串列表
- mongodb - MongoDB:如何在随机位置聚合 $arrayElemAt 而不是最后一个和第一个?
- sql - SQL 循环遍历具有名称的列以查找最大日期
- c++ - 指向结构数组的指针仅显示 char 字段的第一个字符
- c# - 单击按钮后无法访问动态创建的文本框的文本
- apache - 无法在 apache 上禁用 mod_security 规则