Étant donné que j'ai le code suivantComment faites-vous un logcal ou en utilisant les résultats de deux ActiveRelation retournant une autre relation
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
Si je veux des produits fabriqués et distribués en Allemagne, je peux faire la
suivanteProduct.for_country.from_country #=> ActiveRecord::Relation
products = Product.for_country.from_country #=> Array[<Product...>...]
Dans le cas ci-dessus, je peux enchaîner plus de méthodes relationnelles avant de l'assigner aux produits si je le voulais.
Si je veux accéder à tous les produits qui impliquent l'Allemagne, je peux faire ce qui suit
Product.for_country | Product.from_country #=> Array[<Product...>...]
products = Product.for_country | Product.from_country #=> Array[<Product...>...]
Ici je ne peux pas la chaîne plus méthodes relationnelles avant de l'attribuer aux produits depuis le résultat de l'OR est un Array
pas ActiveRecord
::Relation. Mes questions sont comment puis-je for_country avec from_country et obtenir un ActiveRecord::Relation
à la suite?
Idéalement quelque chose comme le Product.for_country(country).or(Product.from_country(country))
suivant
Le code n'est qu'un exemple de ce que j'essaie réellement de faire et n'est pas du vrai code. Vous avez raison bien sûr pour l'exemple donner. – Will