首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Chewy Gem -查询以获取包含特定日期的日期范围

Chewy Gem -查询以获取包含特定日期的日期范围
EN

Stack Overflow用户
提问于 2014-12-13 00:28:20
回答 2查看 986关注 0票数 1

我在Rails应用程序上使用ElasticSearch和chewy GEM。我想帮你翻译一下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
all.select { |task|
 (task.start_at.to_date..task.end_at.to_date).cover?(Date.today)
}

要使用带有嚼的滤镜。我试着用很长的时间来完成这项工作,但没有成功。

任何形式的帮助都是很好的。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-09-17 14:17:56

我知道已经很长时间了,但我现在正在使用Chewy gem,所以它是这样的:

假设您有一个TasksIndex,其中的start_atend_at字段定义良好,属于date类型,并且具有正确的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
field :start_at, type: 'date', format: 'basic_date_time_no_millis' # example, you can use other formats
field :end_at, type: 'date', format: 'basic_date_time_no_millis'

那么你的过滤器可以是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def tasks_including_date(target_date)
  formatted_target_date = target_date.strftime('%Y-%m-%d')
  TasksIndex.filter{start_at <= formatted_target_date}.filter{end_at >= formatted_target_date}
end

然后你就可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tasks_including_date(Date.today)

如果您想要结果本身,而不仅仅是过滤范围,只需在结果上使用to_ary即可。它会对你的结果进行处理。

票数 1
EN

Stack Overflow用户

发布于 2014-12-13 12:43:08

这段代码遍历集合"all“。对于每一项,如果今天在任务的执行时间范围内(它今天的日期在begin_at和end_at范围之间),即是否应该执行任务,它将检查并返回true。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27454207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文