我正在尝试在日期范围内获取具有日期范围(例如event_start
和event_end)
的记录(事件),因此用户可以查询分别位于日期A和日期之间的所有事件。第B天。
如果Rails 5可用,我可以使用.or
,但是如何为Rails 4编写这个?
d = Date.today
Event.all.where(:date_start => d.beginning_of_week..d.end_of_week).or.where(:date_end => d.beginning_of_week..d.end_of_week)
更新
我认为arel可以完成这项工作。
答案 0 :(得分:1)
类似的东西:
Event.all.where('date_start >= ? AND date_end < ?', event_start, event_end)
如果与您的范围的最后一天是同一天,您可能需要将一天添加到event_end
,以便排除那一天,例如:
event_end + 1.days
另一种方法是使用BETWEEN
Event.all.where('date_start BETWEEN ? AND ? AND date_end BETWEEN ? AND ?', event_start, event_end, event_start, event_end)
答案 1 :(得分:0)
试试这个: -
d = Date.today
date_week = d.beginning_of_week..d.end_of_week
Event.where('date_start = ? OR date_end = ?', date_week, date_week)
希望这可能有用!!