[ruby-it] update automatico di un campo.

Luca Mearelli luca.mearelli a gmail.com
Ven 18 Dic 2009 09:55:42 CET


2009/12/17 Mauro <mrsanna1 a gmail.com>:
> I modelli in questione sono settori e categorie, in relazione uno a molti.
immagino quindi che

Category belongs_to :sector
Sector has_many :categories

> La categoria contiene un attributo codice che vorrei venisse
> valorizzato automaticamente col valore dell'attributo codice del
> settore.

quindi vuoi che sia sempre

category.code === category.sector.code

Se non hai esigenze particolari che ti portano a volere la
"denormalizzazione" del dato perche' non togli il campo code dalla
category ed deleghi il code al sector? (per sapere come si fa vedi ad
esempio quest'articolo recente di simone:
http://www.simonecarletti.com/blog/2009/12/inside-ruby-on-rails-delegate
)

> def create
>    @category = Category.new(params[:category])
>    @sectors = Sector.find(:all)
>    @category.code = @sectors[params[:category][:sector_id].to_i]

ma qui assegni al code il sector e non il valore del suo campo code...
invece dell'ultima riga potresti fare (togliendo anche la Sector.find(:all)) :

@category.code = @category.sector.code

ciao,
Luca


More information about the Ml mailing list