Това, което ще искате да направите, е да предадете масив като един аргумент на where
който съдържа както заявката, така и динамичните стойности. Например:
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
Ако масивът е подаден като първи и единствен аргумент, тогава първият елемент от масива се третира като шаблон. Следните стойности на масива се третират като динамични стойности за шаблона на заявката.
За вашия пример, вместо да имате две отделни променливи queries
и query
, комбинирайте ги в една query
променлива:
# 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)
Това ще ви позволи да правите запитвания към DB с неизвестен брой стойности, като използвате LIKE
.