2013-04-25 46 views
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还是主动记录的方式。

谢谢大家。

回答

1

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

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

这是更好地在我的真实想法使用阿雷尔(link)。你会碰到这样的:

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

然后做Project.succeeded_or_ongoing

相关问题