Quello che vorrai fare è passare un array come argomento singolo a where
che contiene sia la query che i valori dinamici. Ad esempio:
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
Se un array viene passato come primo e unico argomento, il primo elemento dell'array viene trattato come un modello. I seguenti valori di matrice vengono trattati come valori dinamici per il modello di query.
Per il tuo esempio, invece di avere due variabili separate queries
e query
, combinali in un'unica queries
variabile:
# 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)
Ciò ti consentirà di interrogare il DB con un numero sconosciuto di valori utilizzando LIKE
.