在Ruby on Rails ActiveRecords中对多个命名范围进行OR运算

时间:2018-02-23 19:02:43

标签: ruby-on-rails ruby activerecord scope named-scope

我有这样的Car模型。

class Car < ActiveRecord::Base
    scope :modern, -> do
        where(make_date: 2018)
    end
    scope :black, -> do
        where(color: :black)
    end
    scope :bmw, -> do
        where(make: :bmw)
    end
end

我可以通过Car.modern找到所有现代汽车。

我可以通过Car.black找到所有黑车。

我可以通过Car.bmw找到所有宝马汽车。

如何使用这些命名范围来查找所有“黑色”或“现代”的汽车?所以我可以在一个结果集中使用Old-Black-Nissan,Modern-White-BMW,Moder-black-Ford。

使用Rails 4.2.8

1 个答案:

答案 0 :(得分:0)

您可以使用this gem。更多信息there。请在自己提问之前仔细搜索。很可能以前有人偶然发现了这个问题。