[ruby-it] associazione molti a molti - salvataggio tabella intermedia
Marco Mueller
mlrmarco a hotmail.com
Ven 5 Giu 2009 17:19:08 CEST
Ciao a tutti,
sto realizzando il mio primo progetto con Rails e sto gestendo una
relazione molti a molti tra la tabella 'disciplines' e la tabella
'teachers' (una materia e' insegnata da molti professori e un professore
puo' insegnare pił materie) con la tabella 'discteaches', sto usando
l'associazione has_many-through perche'
has_and_belongs_to many mi dava ancora pił problemi.
Sto gestendo l'INSERIMENTO DI UN NUOVO INSEGNANTE (nella vista scelgo la
materia con un menu a discesa), non so bene come salvare nella tabella
intermedia 'discteaches' l'id dell'insegnante e quello della disciplina
... quando voglio salvare Rails mi da' "undefined variable or method
teacher..."
e non salva niente.
Qualcuno ha la pazienza di darci un'occhiata? ;-)
MODEL
in teacher.rb ho scritto:
has_many :disciplines, :through => :discteaches
in discipline.rb ho scritto:
has_many :teachers, :through => :discteaches
in discteach.rb ho scritto:
belongs_to teacher
belongs_to discipline
CONTROLLER (teachers_controller)
def create
@teacher = Teacher.new(params[:teacher])
@discteach = Discteach.new
@discteach.discipline_id = params[:discipline.id]
@discteach.teacher_id = @teacher.id
@teacher.save
@discteach.save
if @teacher.save && @discteach.save
flash[:notice] = 'Form memorizzato!'
redirect_to teachers_path
else
render :action => 'new'
end
end
def new
if session[:user_id]
@current_user = User.find_by_id(session[:user_id])
end
@discipline = Discipline.find(:all)
@teacher = Teacher.new
end
VISTA (teachers\new.html.erb)
<%= error_messages_for 'teacher' %>
<h1>Inserimento nuovi insegnanti:</h1>
<% form_for @teacher do |f| %>
<p>
cognome: <%= f.text_field :cognome %>
</p>
<p>
nome: <%= f.text_field :nome %>
</p>
<p>
materia:
<select name="materia">
<% for discipline in @discipline %>
<option value= "<%= discipline.id %>" <b><%= discipline.descrizione
%></b>
</option>
<% end %>
</select>
</p>
<p>
<%= submit_tag "Salva insegnante" %>
</p>
<% end %>
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list