2010-12-02 13 views
2

Lorsque j'écris des requêtes d'activation d'enregistrement, j'utilise généralement la syntaxe sql régulière [field_a = 'b' OU field_c = 'd'] quand j'ai besoin d'utiliser "ou" dans la requête. Je me demande juste s'il y a un moyen de le faire sans avoir recours à sql? J'ai essayé googling 'activerecord ou' mais, sans surprise, pas beaucoup de joie.ActiveRecord: Commande "Or"?

Toute suggestion appréciée.

Répondre

2

Il n'est pas possible (encore) d'utiliser ActiveRecord seul. Les parties de la relation sont toujours en conjonction des ensemble, de sorte que la seule option est d'utiliser une chaîne SQL pour cette partie du .où()

Sinon, vous pouvez recourir à Arel pour l'instant: ActiveRecord OR query

0

Avec Ruby on Rails 5 vous êtes capable de faire l'enchaînement suivant à l'aide ActiveRecord::Relation#or méthode:

Person.where(name: 'Neil').or(Person.where(age: 27)) 

vous pouvez vérifier les documentation et examples.