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
codice:
SELECT * FROM posts WHERE 1
possa aggiungere "dinamicamente"

SE :title != ''
codice:
 AND title = :title
SE :body != ''
codice:
 AND body LIKE '%:body%'
quindi a priori non conosco il numero di campi su cui svolgere la ricerca ma solo dopo il SUBMIT della form.

Scrivere dunque questo set di istruzioni:
codice:
title = params[:query] 
body = '%' + params[:query] + '%'
    
@posts = Post.find(:all, :conditions => ["title = ? OR body like ?",title,body])
mi crea problemi sul come renderla "dinamica".

Grazie