Lo que querrá hacer es pasar una matriz como único argumento a where
que contiene tanto la consulta como los valores dinámicos. Por ejemplo:
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
Si se pasa una matriz como el primer y único argumento, el primer elemento de la matriz se trata como una plantilla. Los siguientes valores de matriz se tratan como valores dinámicos para la plantilla de consulta.
Para su ejemplo, en lugar de tener dos variables separadas queries
y query
, combínelos en una 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)
Esto le permitirá consultar la base de datos con un número desconocido de valores usando LIKE
.