У меня есть массив, и я хотел бы вызвать области с помощью предложения OR
:
cars = ['bmw', 'audi', 'toyota']
class Car < AR
scope :from_bmw, -> { where(type: 'bmw') }
scope :from_audi, -> { where(type: 'audi') }
scope :from_toyota, -> { where(type: 'toyota') }
end
Я бы хотел добиться чего-то вроде этого:
Car.from_bmw.or(Car.from_audi).or(Car.from_toyota)
Мой cars
массив может измениться; в случае: cars = ['toyota', 'audi']
, мой метод должен выдать:
Car.from_toyota.or(Car.from_audi)
У меня есть что-то вроде следующего:
def generate(cars)
scopes = cars.map {|f| "from_#{f} "}
scopes.each do |s|
# HOW TO I ITERATE OVER HERE AND CALL EACH SCOPE???
end
end
Я не хочу передавать тип в качестве аргумента для видимости, есть причина этого.