[ruby-it] nuovo (per luca, ma non solo...)
Luca Mearelli
luca.mearelli a gmail.com
Gio 10 Ago 2006 16:13:48 CEST
ciao,
On 8/8/06, Giovanno Zangrolli <gnugnaman a tiscalinet.it> wrote:
> @contacts = Contact.find_by_sql ["SELECT * FROM contacts WHERE
> (surname = ? AND ? = ?)", surname, tiporicerca,
> valorericerca]
> end
... l'altra volta avevo scritto il tutto al volo, non cosiderando che
Rails fa (giustamente) l'escape dei parametri che si passano come
condizioni, dunque se e' una stringa la circonda con gli apici. Cosi
non e' sql corretto (gli apici delimitano i valori non gli
identificatori tipo un nome di colonna)...
Pero' puoi fare:
@contacts = Contact.find_by_sql ["SELECT * FROM contacts WHERE
(surname = ? AND #{tiporicerca} = ?)", surname, valorericerca]
oppure potresti fare
@contacts = Contact.find_by_surname(surname,
:conditions=>["#{tiporicerca} = ?)", valorericerca])
se hai esigenze piu complesse potresti usare il plugin ez_where
(http://brainspl.at/articles/2006/01/30/i-have-been-busy)
> ho creato una tabella searchfields nel mio db ma l'ho lasciata vuota (?)
Non c'e' bisogno che l'oggetto in si un ActiveRecord, se non vuoi
usare le validazioni puoi semplicemente creare la classe Searchfield
nella directory model senza farle ereditare da ActiveRecord::Base.
Dovrai creare i metodi che ti servono, ma dovrebbe bastare:
class Searchfield
attr_accessor :name, :value
end
ciao,
Luca
Maggiori informazioni sulla lista
Ml