J'essaie de créer une requête dynamique basée sur les entrées de l'utilisateur.
if a
conditions << ["fname like (?)"]
sql_params << "abc"
end
if b
conditions << ["lname like (?)"]
sql_params << "def"
end
if c
cconditions << ["middle like (?)"]
sql_params << "xyz"
end
results = Model.where(conditions.join(' AND '), sql_params)
Alors que les conditions sont dans une syntaxe correcte, les sql_params sont listés comme un tableau. Cela forme la requête suivante
Model.where("fname like (?) AND lname like (?) AND middle like (?)", ["abc","def","xyz"])
alors que ce dont j'ai besoin est
Model.where("fname like (?) AND lname like (?) AND middle like (?)", "abc","def","xyz")
J'ai essayé plusieurs options map/join etc sur le tableau sql_params mais rien n'a fonctionné.