Ce que vous voudrez faire est de passer un tableau en tant qu'argument unique à where
qui contient à la fois la requête ET les valeurs dynamiques. Par exemple :
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
Si un tableau est passé comme premier et unique argument, le premier élément du tableau est traité comme un modèle. Les valeurs de tableau suivantes sont traitées comme des valeurs dynamiques pour le modèle de requête.
Pour votre exemple, au lieu d'avoir deux variables distinctes queries
et query
, combinez-les en une seule query
variables :
# A single array with the query AND values
query = ["hobby LIKE ? OR (gender LIKE ? AND hobby LIKE ?)", "skiing", "male", "jogging"]
# Run the `where` with a single array as the argument
YourModel.where(query)
Cela vous permettra d'interroger la base de données avec un nombre inconnu de valeurs en utilisant LIKE
.