[ruby-it] associazione molti a molti - salvataggio tabella intermedia
Andrea Longhi
andrea74 a mailshack.com
Sab 6 Giu 2009 11:36:23 CEST
Marco Mueller wrote:
> in teacher.rb ho scritto:
> has_many :disciplines, :through => :discteaches
> in discipline.rb ho scritto:
> has_many :teachers, :through => :discteaches
Allora, in entrambi manca
has_many :discteaches
> def create
> @teacher = Teacher.new(params[:teacher])
> @discteach = Discteach.new
> @discteach.discipline_id = params[:discipline.id]
^^^^^^^^^^^^^^^^
params[:discipline.id] è nil, se nella vista usi <select name="materia">
qui dovrai usare params[:materia]
> @discteach.teacher_id = @teacher.id
qui @teacher.id è nil, essendo @teacher un nuovo record non ancora
salvato id è nil. Prima devi salvare @teacher, poi assegnare
@discteach.teacher_id
Un appunto stilistico: secondo me è orribile mischiare italiano e
inglese nel codice: leggere robe tipo teacher.cognome o
discipline.descrizione fa venire l'orticaria e manca di consistenza, se
il tuo problema è avere i nomi dei campi in italiano nelle viste ti
consiglio di usare la localizzazione di rails che funziona benissimo
anche per queste cose.
Ultima nota: ci sono un paio di screencast sulle relazioni has_many e
has_many through su railscasts.com, ti consiglio di guardarli per vedere
come migliorare il codice del controller e delle viste.
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list