ruby-on-rails – 如何使用可变日期搜索Rails中的日期范围

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何使用可变日期搜索Rails中的日期范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在rails活动记录中这样做?

找到所有匹配的机型(created_at本月的100天)

编辑:
好的,抱歉不准确这是我正在尝试在Rails 3.0的主动记录方式:

select 
    distinct p.ID 
from
    patients p
    inner join vaccines_patients vp on p.ID = vp.patient_id
    inner join vaccines v on v.ID = vp.VACCINE_ID
where
    month(vp.appliedAt + INTERVAL v.duration DAY) = month(now())

我想得到一个类似的查询,但使用活动记录中的哪个.

解决方法

你没有指定Rails 2或3,我并不完全确定你正在寻找什么范围,但这应该让你开始.请添加一些示例日期,并说出是否应该落入您的范围.

在Rails 2中,您可以在模型中使用named_scope.

# This range represents "created_at" values that are within 100 days on either side of today.
# Please clarify what "created_at + 100 days between this month" means if you need help
# refining this.
#
named_scope :within_range,lambda {{ :conditions => ["created_at <= ? AND created_at >= ?",Date.today + 100,Date.today - 100] }}

在Rails 3中,您将使用新的Arel范围方法的范围:

scope :within_range,lambda { where("created_at <= ? AND created_at >= ?",Date.today - 100) }

猜你在找的Ruby相关文章