Mi sapreste dire qual'è il modo migliore per creare una query dinamica col metodo Find.
Mi spiego, se ho una form che permette di fare un ricerca per tot campi e non ne compilo alcuni, voglio, che tali campi vengano ignorati durate la ricerca ovvero che per essi venga restituto l'intero range di valori presenti a DB.
Es. ho un Model "Posts" con due campi :title e :body
poi ho una form che mi permetta la ricerca su essi; io voglio che partendo dalla query di base
possa aggiungere "dinamicamente"codice:SELECT * FROM posts WHERE 1
SE :title != ''
SE :body != ''codice:AND title = :title
quindi a priori non conosco il numero di campi su cui svolgere la ricerca ma solo dopo il SUBMIT della form.codice:AND body LIKE '%:body%'
Scrivere dunque questo set di istruzioni:
mi crea problemi sul come renderla "dinamica".codice:title = params[:query] body = '%' + params[:query] + '%' @posts = Post.find(:all, :conditions => ["title = ? OR body like ?",title,body])
Grazie

Rispondi quotando