[ruby-it] update automatico di un campo.
Mauro
mrsanna1 a gmail.com
Gio 17 Dic 2009 13:18:24 CET
2009/12/17 Pietro Giorgianni <giorgian a gmail.com>:
> Il 17 dicembre 2009 13.03, Mauro <mrsanna1 a gmail.com> ha scritto:
>> Vorrei che al momento della creazione di un nuovo oggetto venisse
>> valorizzato automaticamente uno dei suoi attributi.
>> I modelli in questione sono settori e categorie, in relazione uno a molti.
>> Il partial della view per la categoria e':
>>
>> <%= f.collection_select :sector_id, @sectors, :id, :name, :prompt =>
>> "seleziona il settore" %>
>> <%= f.label :descrizione %><br />
>> <%= f.text_field :descr %>
>> <%= f.label :esempi %><br />
>> <%= f.text_area :example %>
>> <%= f.submit label_text %>
>>
>> in questo modo la categoria e' associata ad un settore.
>> La categoria contiene un attributo codice che vorrei venisse
>> valorizzato automaticamente col valore dell'attributo codice del
>> settore.
>> Banalmente nel controller avevo fatto:
>>
>>
>>
>> def create
>> @category = Category.new(params[:category])
>> @sectors = Sector.find(:all)
>> @category.code = @sectors[params[:category][:sector_id].to_i]
>>
>> pero' al codice della categoria viene assegnato un valore che non
>> corrisponde a quello del codice del settore selezionato nella select.
>> Logicamente mi sembrava corretto ma evidentemente non lo e'.
>
> Il motivo per cui non funziona č che tu speri che gli id siano tutti
> consecutivi e senza buchi, ma non č detto che sia cosė; inoltre, tu
> speri che il primo id sia zero, ma qui avrai una grossissima
> delusione.
>
Se nella select seleziono il settore da associare alla categoria e, al
submit, i parametri passati sono:
"category"=>{"sector_id"=>"1",
"descr"=>"bbbbb",
"example"=>""},
"commit"=>"Crea"}
facendo @category.code =
@sectors[params[:category][:sector_id].to_i].code sto andando a
prendere il valore dell'attributo code del settore con indice 1.
Sbaglio?
E invece nel code della categoria mi trovo un valore diverso.
More information about the Ml
mailing list