【发布时间】:2012-03-05 17:10:44
【问题描述】:
我有以下设置:
class Season < AR::Base
has_many :date_ranges
end
class DateRange < AR::Base
# has a :starts_at & :ends_at
end
如何从季节实例中找到所有重叠的季节?我已经尝试了几个不同的查询(如下)。但是我一直遇到的问题是,即时检查的季节也可能有多个 date_ranges。我可以用循环解决它,但我宁愿只使用查询。
此查询查找所有重叠的季节,但它仅针对 1 个输入 date_range
Season.joins(:date_ranges).where("starts_at <= ? AND ends_at >= ?", ends_at, starts_at)
也许我需要一些东西来为实例上的每个 date_range 链接几个 OR,但 where() 只使用 AND。
所以简而言之,找到重叠不是问题,但是我如何找到多个 date_range 与整个数据库的重叠?
【问题讨论】:
-
MySQL 但如果可能的话,我也希望它与其他人兼容
标签: ruby-on-rails ruby activerecord arel