実行したいのは、配列を単一の引数としてwhere
に渡すことです。 これには、クエリと動的な値の両方が含まれます。例:
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])
配列が最初で唯一の引数として渡された場合、配列の最初の要素はテンプレートとして扱われます。次の配列値は、クエリテンプレートの動的な値として扱われます。
あなたの例では、2つの別々の変数queries
を持つ代わりに およびquery
、それらを1つの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)
これにより、LIKE
を使用して、不明な数の値でDBをクエリできます。 。