[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