Ich versuche, ein Formular zu erstellen, das es mir ermöglicht, neue Datensätze für eine Zuordnung einzureichen, in der die Verknüpfungseingaben gruppiert sind. Gruppierung und fields_for
class Product < AR::Base
has_many :properties
accepts_nested_attributes_for :properties
end
Beachten Sie, dass in der Steuerung eine Reihe von Eigenschaften für das Produkt eingebaut werden, so @product.properties.empty? # => false
.
Die unten fields_for
gibt mir die richtigen Eingänge mit Namen wie product[properties_attributes][0][value]
.
= form.fields_for :properties do |pform|
= pform.input :value
Aber sobald ich versuche, und die Gruppe der Verein es nicht mehr erzeugt Eingänge mit den richtigen Namen:
- @product.properties.group_by(&:group_name).each do |group_name, properties|
%h3= group_name
= form.fields_for properties do |pform|
= pform.input :value
Diese Eingänge schaffen, die das name
Attribut wie product[product_property][value]
wenn in der Tat es product[property_attributes][0][value]
sein sollte wie im ersten Beispiel.
Die Rails-Dokumentation schlägt vor, dies zu tun:
= form.fields_for :properties_attributes, properties do |pform|
Aber das gibt einen Fehler „nicht definierte Methode Wert für Array“.
Dies scheint zu funktionieren, ich weiß nicht, warum ich nicht versuchen ': properties' statt ': property_attributes'. Wird in Kürze angenommen. – Kris