我有以下型号:
#models/foobar.rb
class Foobar < ActiveRecord::base
scope :active, ->{where(active: true)}
scope :inactive, ->{where(active: false)}
end
我想要做的是获取一个包含活动的所有foobar
记录的activerecord关系对象。然后:我还希望这个相同的activerecord关系对象包含所有非活动的foobar
记录。
我认为这不符合我的要求:
# only returns the active records
Foobar.active.inactive
这不会起作用,因为它返回一个数组,而不是一个activerecord关系对象:
# returns an array not an activerecord relation object
Foobar.active + Foobar.inactive
如何让activerecord关系对象包含BOTH活动和非活动foobar记录?更好的是:有没有办法创建一个可以为我做这个的范围?
答案 0 :(得分:2)
您可以使用此代码:
scope :active_and_inactive, ->{where(active: [true,false])}
通过使用Array,您可以为属性传递多个值。