[ruby-it] nuovo (per luca, ma non solo...)

Giovanno Zangrolli gnugnaman a tiscalinet.it
Mar 8 Ago 2006 12:48:25 CEST


Luca Mearelli wrote:
> <%=  collection_select(:searchfield, :name,
> Contact.content_columns.collect{|c| c.name}, :to_s, :humanize) %>
> <%= text_field(:searchfield, :value) %>
> 
> che crea un select usando le colonne del modello (mette ill nome della
> colonna nel valore e la versione "leggibile" nel nome della option).
> 
> Alla submit nel controller troverai il nome della colonna in
> params[:searchfield][:name] poi:
> 
> Contact.find(:all, :conditions=>["? = ?", params[:searchfield][:name],
> params[:searchfield][:value]])
> 

grazie Luca,

in effetti così è molto meglio...
al posto del Contact.find io però ho usato questo:

def my_search4
    surname = params[:contact][:surname]
    tiporicerca = params[:searchfield][:name]
    valorericerca = params[:searchfield][:value]
    if valorericerca == ""
      @contacts = Contact.find_by_sql ["SELECT * FROM contacts WHERE 
(surname = ?)", surname]
    else
      @contacts = Contact.find_by_sql ["SELECT * FROM contacts WHERE 
(surname = ? AND ? = ?)", surname,             tiporicerca, 
valorericerca]
      end

    end

perchè volevo per la ricerca un campo fisso e uno 'selezionabile'. Il 
codice non da problemi ma guarda il log:

Processing ContactController#my_search4 (for 127.0.0.1 at 2006-08-08 
12:37:03) [POST]
  Session ID: 6a9c308d4683734a3bf779ad0022bcfd
  Parameters: {"searchfield"=>{"name"=>"name", "value"=>"franco"}, 
"contact"=>{"surname"=>"zangrilli"}, "action"=>"my_search4", 
"controller"=>"contact"}
  Contact Load (0.000000)   SELECT * FROM contacts 
WHERE (surname = 'zangrilli' AND 'name' = 'franco') Completed in 
0.06000 (16 reqs/sec)

*****PERCHE' 'name' ('name' = 'franco') E' TRA VIRGOLETTE? E' UN ERRORE?

> N.B. devi avere un oggetto Searchfield con campi name e value!
> 

ho creato una tabella searchfields nel mio db ma l'ho lasciata vuota (?)

******se cerco solo per  cognome (senza usare la select) la ricerca 
funziona. ma se cerco inserendo anche del testo nella textarea della 
select allora non ho errore ma non mi viene alcun risultato!

> ciao,
> Luca
> 
> P.S. l'ho scritto al volo, senza testarlo...


grazie mille


-- 
Posted via http://www.ruby-forum.com/.


Maggiori informazioni sulla lista Ml