O que você vai querer fazer é passar um array como um único argumento para
where
que contém a consulta E os valores dinâmicos. Por exemplo:where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
Se uma matriz for passada como o primeiro e único argumento, o primeiro elemento da matriz será tratado como um modelo. Os seguintes valores de matriz são tratados como valores dinâmicos para o modelo de consulta.
Para o seu exemplo, em vez de ter duas variáveis separadas
queries
e query
, combine-os em uma query
variável:# 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)
Isso permitirá que você consulte o banco de dados com um número desconhecido de valores usando
LIKE
.