Has many trough

Brauche wieder mal etwas Nachhilfe- trotz aller Sucherei…

Ich möchte ein neues Seminar eintragen lassen

in den 3 models(seminars, therapists, semi_theraps sind die Einträge
drin

Wie bekomme ich die new (edit) action im Formular zum laufen/eintragen?

controller
def new
@seminar = Seminar.new

<% form_for(:seminar, :url=> admin_seminars_path) do |f| %>
<%= render :partial => ‘seminare’, :locals => { :f => f } %>

_seminare.html.erb

<%= f.text_field :title %> # o.k.

aber hier:

<%= f.select :t ???, Therapist.find_for_select %>

#da müßte doch die therapist_id rein, aber die erkennt er nicht
=>undefined method `therapist_id’
Ich dachte durch die Verknüpfung sollte die bekannt sein…

Wie muß ich das formulieren?
Und ich im controller noch extra was tun, damit die therapist_id in
die join tabelle reinkommt, oder findet er das so?

Gruß + Danke

Werner L.
Lindenburger Allee 22 - 50931
Köln
0221.8805 635


http://www.webagentur-laude.de

Hi Werner,

probier’s mal damit:

<%= f.select “seminar[therapist_id][]”, Therapist.find_for_select %>

Gruss,
Roman

Am 05.03.2009 um 13:58 schrieb Werner L.:

Am 05.03.2009 um 14:45 schrieb Roman Sladeczek:

Hallo Roman…

ich habe alle Bezeichnungen noch mal gecheckt…stimmen
und <%= f.select “seminar[therapist_id][]”, Therapist.find_for_select %>

=> undefined method `seminar[therapist_id][]’

Soweit…
Gruß

wieso machst Du hier eigentlich eine has_many :through Relation?
So wie Du die Modelle definiert hast, solltest Du eine habtm Beziehung
benutzen, ansonsten passt das Konstrukt für has_many :through logisch
nicht zusammen.

Wenn Du tatsächlich ein has_many :through Verknüpfung haben willst, so
sind Deine Seminare eigentlich die Join-Table (hier also semi_theraps)
und Deine Seminare sind Seminartypen!?

Am 05.03.2009 um 15:10 schrieb Werner L.:

Am 05.03.2009 um 16:10 schrieb Roman Sladeczek:

wieso machst Du hier eigentlich eine has_many :through Relation?
So wie Du die Modelle definiert hast, solltest Du eine habtm
Beziehung benutzen, ansonsten passt das Konstrukt für
has_many :through logisch nicht zusammen.

Wenn Du tatsächlich ein has_many :through Verknüpfung haben willst,
so sind Deine Seminare eigentlich die Join-Table (hier also
semi_theraps)
und Deine Seminare sind Seminartypen!?

So ich denk ich habe es soweit…

stimmt habtm ist besser.

es muß
<%= f.select :t.therapist_ids, Therapist.find_for_select %>

also ids statt id heißen…

Soweit danke

Am 05.03.2009 um 16:42 schrieb Werner L.:

und Deine Seminare sind Seminartypen!?

Da gerade ein ähnlicher thread läuft will ich mich da noch mal
einklinken.

Bei mir:
Ein Seminar kann mehrere Therpeuten haben
Ein Therapeut kann in mehreren Seminaren tätig sein.

Eine many to many relation!?

Nur ist mir noch nicht klar wie ich das im Seminar-Formular umsetze.
Dort sind zwei select Felder mit Therapeuten id/namen.

An diesem Punkt komme ich mit den manytomany , und trough nicht weiter.

Um einen zweiten Wert in die join tabelle einzutragen müßte ich =>
trough nehmen, aber da klappt der Eintrag des Zweitwertes nicht.
Alle Tuts die ich finden konnte, erschöpfen sich in der ausführlichen
Diskussion der Modells. Werte eintragen findet nicht statt!

Bisher habe ich dann die therapeuten Id einfach in die Seminar Tabelle
eingetragen, also ohne Relation. So richtig zufriedenstellend ist das
aber nicht…

Wie gehe ich da am besten vor?

Gruß

Werner L.
Lindenburger Allee 22 - 50931
Köln
0221.8805 635


http://www.webagentur-laude.de