J'ai quelques conditions à transmettre à un chercheur. Le problème est que je ne veux pas passer d'une manière sécuritaire. Alors, imaginez que je reçois un hachage:Enregistrement actif recherche des conditions sous forme de chaîne
hash = {:start_date=>'2009-11-01',:end_date=>'2010-01-23'}
je voudrais transmettre à mon finder comme:
Model.find(:all,:conditions=>"created > '#{start_date}' and created < '#{end_date}'")
Le problème est qu'il est dangereux et je suis exposé à des problèmes d'injection SQL. Ma question est, comment serait la meilleure façon de composer cette condition?
Je veux le faire dynamiquement. Par exemple, je fais aujourd'hui comme:
find_condition = ['created > ? and created < ?','2009-10-01','2010-01-01']
Model.find(:all,:conditions=>find_condition)
@JohnTopley Je pense que cela devrait être réellement ' Model.all (: conditions => ['created>? et créé ',: start_date,: end_date]) '. (c'est-à-dire, les conditions n'appartiennent-elles pas également au '[]'?) – jerhinesmith
@jerhinesmith Merci, bonne prise! Je vais mettre à jour l'exemple. –
Je crois que vous vouliez dire start_date, end_date au lieu de: start_date,: end_date (colons sortis) – kikito