我有一个带有'date_starting'和'date_ending'属性的模型。我想在我的模型中创建一个范围,使用Time.now指示模型是否在日期开始和结束范围内。
类似
scope :activeAtDate, lambda{ |date = Date.today| where("? BETWEEN date_starting AND date_ending", date) }
我使用了不同的帖子,但作为一个新手,我很难做到这一点。
更新
控制器
@current = Guide.activeAtDate
谢谢,
答案 0 :(得分:2)
您的查询逻辑是相反的,您必须找到每个date_ *字段的边界 您可以按照以下方式执行此操作
scope :active_at_date, lambda {
where("date_starting < :date and date_ending > :date", date: Date.today )
}
无需为lambda提供参数。因为参数总是一样的。
如果您需要更改日期,请将其重写为
scope :active_at_certain_date, lambda { |date|
where("date_starting < :date and date_ending > :date", date: date )
}