Ruby on Rails: Wie sammeln Werte für Kinder Tabellen aus einer Form?
-
19-09-2019 - |
Frage
Referenzierung Frage # 2013421, ich habe folgende RoR Modelle:
class Game < ActiveRecord::Base
has_many :piles
end
class Pile < ActiveRecord::Base
belongs_to :game
end
Aus Gründen der Argumentation, suppose Game
hat ein Attribut name
und Pile
hat ein Attribut type
, sowohl string
. Es gibt genau 10 Pfähle pro Spiel.
Ich mag ein einzelnes HTML-Formular ein neues Spiel, ähnlich den von ruby script\generate scaffold
erzeugt zu schaffen; das heißt wie:
<h1>New game</h1>
<% form_for(@game) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', games_path %>
Wie kann ich Felder zum Formular hinzufügen, um Werte für das Pile.type
Feld für jeden der 10 Pfähle zu lesen?
Lösung
Sie können etwas tun:
Modell:
class Game < ActiveRecord::Base
has_many :piles
accepts_nested_attributes_for :piles
end
in der Form:
<% f.fields_for :piles do |pile_form| %>
<%= pile_form.label :your_attribute %>
<%= pile_form.text_field :your_attribute %>
<% end %>
Beachten Sie, dass ‚Typ‘ Methode-keyword-Spalte von Active reserviert ist polymorphe Assoziationen zu erreichen
finden Sie unter guten rel="nofollow Führung über verschachtelte Formen in Schienen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow