Ich benutze ein Formular, um einen Benutzer eine neue Überprüfung für die Reisen erstellen, die ein bestimmter Benutzer war. Meine Bewertungen Tabelle haben derzeit die folgenden Spalten (Bewertung, trip_id, Beschreibung). Das Problem, das ich habe, zeigt den Text von Städtenamen von Reisen an, auf denen der Benutzer gewesen ist.Rails: Formular collection_set, help Anzeige von Text durch verknüpfte Tabelle
Rails Doc für collection_set akzeptiert die folgenden Argumente: collection_select (Methode, Sammlung, Wertmethode, Textmethode, Optionen = {}, html_options = {}). In Bezug auf die Textmethode möchte ich den tatsächlichen Städtenamen der Reisen anzeigen können, Stadtnamen werden jedoch von der city_id innerhalb der Reisetabelle referenziert. Ich weiß nicht, wie ich auf diese Spalte zugreifen soll, die über ihre Verknüpfungen existiert.
Tabelle Trips (user_id, city_id) Tabelle City (Name, Beschreibung)
<%= form_for @review do |f| %>
<%= f.label :rating %>
<%= f.number_field :rating %> <br>
<%= f.label :trip_id %>
<%= f.collection_select :trip_id, @user.trips, :id, :city_id %>
<%= f.label :description %>
<%= f.text_area :description %> <br>
<%= f.submit %>
<% end %>
Mein erstes Mal Schienen Formen fragt nach, so lass es mich wissen, wie ich die Frage zu informieren, um besser zu aktualisieren.
Super !! Genau das habe ich gebraucht. Können Sie erklären, wie die Methode funktioniert, insbesondere wie das Trip-Modell Zugriff auf das Stadtmodell hat. Liegt es daran, dass Sie zuerst die Beziehung "coins_to" einrichten müssen? – jamesvphan
Genau das - Hinzufügen von 'gehört' zu ActiveRecord erkennt, dass' city_id' einer 'Stadt' entspricht, und es wird geladen, wenn Sie auf' city' zugreifen. Die Dokumentation zu Assoziationen erklärt das gut: http://guides.rubyonrails.org/association_basics.html – gwcodes