ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Über 4 Tabellen
BeitragVerfasst: 02 Jun 2013, 14:08 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Moin Leute.

Ich hab folgendes Problem. Ich hab jetzt 4 Tabellen. Den Zusammenhang der 4 Tabellen schildere ich mal anhand eines Fußballspieles.

Ich hab ein Fußballspiel.
Ich hab eine Spielerliste.
Ich hab ein Spieler.
Ich hab ein Aufwärmer.


Mit folgender Beziehung zueinander.
Fußballspiel 1---n Spielerliste n---1 Spieler n---1 Aufwärmer

Jetzt möchte ich ein Spiel anlegen und genau da weiß ich nicht mehr so ganz weiter.

Beim Spiel muss ich die Spieler, inkl. der Aufwärmer auswählen können. Das ganze soll über zwei selectboxen funktionieren.

Hat jemand ein gutes Tutorial oder Beispiel an der Hand oder kann mir sagen wie in etwa der Controller und der _form.html.erb aussehen könnte? Keine Ahnung wie ich die Dinge greifen kann :-(

Wäre echt dankbar!!!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Über 4 Tabellen
BeitragVerfasst: 02 Jun 2013, 20:30 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1906
Für mich stellt sich das so dar:

1 Spiel, n-personen, dabei sind x personen vom typ spieler und y personen vom typ aufwärmer.

Es fehlen jetzt die Informationen, was für Attribute eine Spieler-Liste hat.
Davon hängt ab, ob man diese unbedingt braucht, oder einfach nur eine m:n Beziehung
zwischen Spiel und Personen besteht.

Man könnte das mit einem nested Form lösen. Vielleicht hilft die der Cast

http://railscasts.com/episodes/196-nested-model-form-part-1
http://railscasts.com/episodes/197-nested-model-form-part-2

Ist zwar noch Rails 2, aber kann durchaus übertragen werden auf Rails 3

_________________
Grüße
Jack


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Über 4 Tabellen
BeitragVerfasst: 02 Jul 2013, 13:50 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Herzlichen Dank erstmal. Hat mir ein wenig weitergeholfen. Momentan bin ich soweit das ich die jeweiligen Auswahlen in der Select-Box tätigen kann.

Ich kann also nun einen Spieler in der Selectbox auswählen und kann dann, das hab ich soweit mit Javascript hinbekommen, die Aufwärmer für den Spieler auswählen. Wobei jeder Spieler ja unterschiedliche Aufwärmer haben kann.. Naja wie dem auch sei. Das ganze funktioniert jetzt soweit schon.

Das ist vielleicht etwas merkwürdig aber die Kombination zwischen einem Spieler und einem Aufwärmer ist eindeutig. D.h. jede Kombination bekommt eine eigene ID obwohl es der selbe Spieler ist. Diese Kombinationen kann man dann gesondert festlegen bzw. einstellen.

Problem ist nicht das Speichern, das funktioniert, da ja die eindeutige Id mittels Javascript ausgewählt wird.

Hier mein Code wie er zur Zeit in der new.html.erb ist:


1
2
3
4
5
6
7
<%= nested_form_for(spiel) do |f| %>

<%
=
f.fields_for :spielerlists do |bundle_form| %>
<%= bundle_form.collection_select :spieler_id, selectable_spieler ,:id, :name, {:prompt =
>
"Nicht gew��hlt"} %>
<%= collection_select(:post, :id, @selectable_aufw��rmer, :id, :name, {:prompt => "Nicht gew��hlt"}) %>
<% end %>
<% end %>


Ich weiß dass das erstmal merkwürdig aussieht da ich ja mit dem collection_select anscheinend nichts anfange. Das liegt an der Auswahl mittels Javascript. Dort fange ich die Auswahl aber ab und änder dann mithilfe von Ajax das benötigte :spieler_id in bundle_form:collection :spieler_id.....

Wie bekomme ich das aber auch richtig angezeigt? Da liegt mein Problem. Ich weiß zwar dass das richtige gespeichert wurde aber es wird ja nicht angeziegt. Ich hab versucht das ganze mal soweit abzuändern:


1
2
3
4
5
6
7
8
9
<%= nested_form_for(spiel) do |f| %>

<%
=
f.fields_for :spielerlists do |bundle_form| %>
<%= bundle_form.collection_select :spieler_id, selectable_spieler ,:id, :name, {:prompt =
>
"Nicht gew��hlt"} %>
<%= bundle_form.fields_for :spieler do |builder| %>
<%
=
builder.collection_select(:aufw��rmer, @selectable_aufw��rmer, :id, :name, {:prompt => "Nicht gew��hlt"}) %>
<% end %>
<% end %>
<% end %>

Wunderbar, ich bekomme von jedem Spieler auch den dazugehörigen Aufwärmer angezeigt.
Jetzt hab ich allerdings das Problem das ich nichts mehr Speichern kann. Auf New fehlt mir jetzt ja auch meine Aufwärmerauswahl zu jedem Spieler. Einzig die Show funktioniert noch. Sonst leider nichts mehr.

Das einzigste was mir hier als Lösung jetzt noch einfällt, ist das ganze wieder mittels AJAX zu lösen. Das würde aber dauern für jeden Spieler den Aufwärmer zu suchen. Das wäre aber nur die letzte Möglichkeit die ich in Betracht ziehen würde.

Ich bedanke mich schon mal vielmals und weißt das ich schwer bin ;-)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Über 4 Tabellen
BeitragVerfasst: 05 Jul 2013, 09:42 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Ist erledigt. Hab dann doch rausgefunden wie es funktioniert.

Ich hab ein Index drum gelegt und dann über diesen index auf das entsprechende Element am index geprüft und gegebenenfalls hinzugefügt.

Danke trotzdem.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: