Yang ingin Anda lakukan adalah meneruskan array sebagai argumen tunggal ke where
yang berisi kueri DAN nilai dinamis. Misalnya:
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
Jika sebuah array dilewatkan sebagai argumen pertama dan satu-satunya, maka elemen pertama dari array tersebut diperlakukan sebagai template. Nilai larik berikut diperlakukan sebagai nilai dinamis untuk template kueri.
Sebagai contoh Anda, alih-alih memiliki dua variabel terpisah queries
dan query
, gabungkan menjadi satu query
variabel:
# 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)
Ini akan memungkinkan Anda untuk menanyakan DB dengan jumlah nilai yang tidak diketahui menggunakan LIKE
.