Forum: Rails Germany has many trough

64502c61ed41ff9e917499a2347dd9fe?d=identicon&s=25 Werner Laude (Guest)
on 2009-03-05 13:59
(Received via mailing list)
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 Laude
Lindenburger Allee 22  -  50931
Köln
0221.8805 635

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.webagentur-laude.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A28d1a1f0f6150c0513c807ed51eec9b?d=identicon&s=25 Roman Sladeczek (wowo08)
on 2009-03-05 14:45
(Received via mailing list)
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 Laude:
64502c61ed41ff9e917499a2347dd9fe?d=identicon&s=25 Werner Laude (Guest)
on 2009-03-05 15:10
(Received via mailing list)
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ß
A28d1a1f0f6150c0513c807ed51eec9b?d=identicon&s=25 Roman Sladeczek (wowo08)
on 2009-03-05 16:11
(Received via mailing list)
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 Laude:
64502c61ed41ff9e917499a2347dd9fe?d=identicon&s=25 Werner Laude (Guest)
on 2009-03-05 16:42
(Received via mailing list)
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
64502c61ed41ff9e917499a2347dd9fe?d=identicon&s=25 Werner Laude (Guest)
on 2009-03-08 12:44
(Received via mailing list)
Am 05.03.2009 um 16:42 schrieb Werner Laude:

>> 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 Laude
Lindenburger Allee 22  -  50931
Köln
0221.8805 635

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.webagentur-laude.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This topic is locked and can not be replied to.