[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