【发布时间】:2018-08-03 21:48:03
【问题描述】:
我有一个这样的汽车模型。
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、Moder-White-BMW、Moder-black-Ford。
使用 Rails 4.2.8
【问题讨论】:
-
答案因您使用的 Rails 版本而异(>=5 或
-
使用 Rails 4.2.8
-
如果你可以升级到 rails 5,这个版本在 ActiveRecord 中增加了对 OR 的支持。 api.rubyonrails.org/classes/ActiveRecord/…
标签: ruby-on-rails ruby activerecord scope named-scope