[ruby-it] Ricerche sui campi di un form

Andrea(Q) stb a stb3.com
Dom 9 Dic 2007 20:07:10 CET


Lobo Czarnian wrote:
> Andrea(Q) wrote:
>   
>> Lobo Czarnian wrote:
>>     
>>> Salve a tutti, vorrei chiedere, in quanto inesperto di Rails, il metodo
>>> pi� appropriato per utilizzare i campi di un form come criteri di una
>>> query, senza dover compormi l'SQL da passare al metodo 'find_by_sql'
>>> (che credo sia anche un metodo vulnerabile all'sql injection  ).
>>> Da premettere che non tutti i campi del form devono essere
>>> obbligatoriamente compilati.
>>>   
>>>       
>> ciao,
>>
>> puoi fare una cosa del genere, i punti interrogativi servono proprio per
>> seistemare l' sql injection, praticamente cos� facevo i parametri prima
>> di andare alla query vengono controllati(nn ricordo come).
>>
>> params[] � il vettore contenente i dati della form
>>
>>     @travels = Travel.find(:all,
>>                            :include => [:user,:location],
>>                            :conditions => ["travels.date < ? AND
>> travel_departure >= CURDATE()",params["travel_date"]],
>>                            :order => "travel_departure 
>> ASC,locations.seq")
>>     
>
> Quindi posso passare direttamente l'hash params come parametro a find.
> Ma come si comporta con i campi non compilati?
> Nel senso che, riferendomi all'esempio che mi hai mandato, se il campo 
> della form travel_date non venisse compilato, significa che dovrò 
> modificare la stringa sql, e conseguentemente, eliminare il parametro 
> travel_date dall'interno dell'hash ?
>   
puoi mettere delle condizioni, una cosa del tipo params["travel_date"] | 
"2007-11-11"
non è proprio così ma giusto per capirci



Maggiori informazioni sulla lista Ml