J'ai 2 simples named scopes définis comme tels:Enchaînement nommé Scopes ne fonctionne pas comme prévu
class Numbers < ActiveRecord::Base
named_scope :even, :conditions => {:title => ['2','4','6']}
named_scope :odd, :conditions => {:title => ['1','3','5']}
end
si je l'appelle Numbers.even je reviens 2,4,6 qui est correct si j'appeler des numéros. impair je reviens 1,3,5 ce qui est correct
Quand je les enchaîne comme ceci: Numbers.even.odd Je reviens à 1,3,5 parce que c'est la dernière portée que je référence. Donc, si je dis Numbers.odd.even, je voudrais effectivement obtenir 2,4,6.
Je m'attendrais à obtenir 1,2,3,4,5,6 quand je les enchaîne ensemble. Une autre approche que j'ai essayé était le suivant:
named_scope :even, :conditions => ["title IN (?)", ['2', '4','6']]
named_scope :odd, :conditions => ["title IN (?)", ['1', '3','5']]
Mais je reçois aucun résultat quand je les Enchaînez parce que la requête crée ressemble à ceci:
SELECT * FROM `numbers`
WHERE ((title IN ('1','3','5')) AND (title IN ('2','4',6')))
La clause « ET » devrait être modifié à OU mais je n'ai aucune idée de comment forcer ça. Cela pourrait-il être un problème avec ActiveRecord ??