Учитывая, что у меня есть следующий код
class Product < ActiveRecord::Base
def self.from_country(country)
where(:origin_country_id => country.id)
end
def self.for_country(country)
where(:destination_country_id => :country.id)
end
end
Если я хочу, чтобы продукты были изготовлены и распространены в Германии, я могу сделать следующее
Product.for_country.from_country #=> ActiveRecord::Relation
products = Product.for_country.from_country #=> Array[<Product...>...]
В приведенном выше случае я могу связать более реляционныеметоды, прежде чем присвоить его продуктам, если я хочу.
Если я хочу получить доступ ко всем продуктам, связанным с Германией, я могу сделать следующее
Product.for_country | Product.from_country #=> Array[<Product...>...]
products = Product.for_country | Product.from_country #=> Array[<Product...>...]
Здесь я не могу связать более реляционные методы перед назначениемэто к продуктам, так как результатом ИЛИ является Array
, а не ActiveRecord
:: Relation.
Мои вопросы: как я могу ИЛИ for_country с from_country и получить ActiveRecord::Relation
в результате?
В идеале что-то вроде следующего Product.for_country(country).or(Product.from_country(country))