2

我明白这是可能的

scope :public_visible, where("(status = ?) OR (end_date > ?)", :published, Date.today)

但我想要做的是将以下两个范围与OR

scope :succeeded, having("SUM(orders.sum) >= goal")
scope :ongoing, where("end_date >= ?", Date.today)

这可能吗?以 sql 或 activerecord 方式。

感谢大家。

4

2 回答 2

1

不是一个完美的解决方案,但我最终做了

scope :succeeded_or_ongoing, where("id in (?) or id in (?)", Project.succeeded.map(&:id), Project.ongoing.map(&:id))
于 2013-04-30T13:08:40.063 回答
0

老实说,最好使用 ARel(链接)。你会有类似的东西:

def succeeded_or_ongoing
  where("id in (?) or id in (?)", Project.succeeded.map(&:id), Project.ongoing.map(&:id))
end

然后做Project.succeeded_or_ongoing

于 2013-04-30T15:27:11.743 回答