Próbuję utworzyć formularz, który pozwala mi przesłać nowe rekordy dla powiązania, w którym wejścia asocjacyjne są zgrupowane.grupowanie i fields_for
class Product < AR::Base
has_many :properties
accepts_nested_attributes_for :properties
end
Należy zauważyć, że w sterowniku szereg właściwości są budowane dla produktu, tak @product.properties.empty? # => false
.
Poniżej fields_for
podaje mi prawidłowe dane wejściowe o nazwach takich jak product[properties_attributes][0][value]
.
= form.fields_for :properties do |pform|
= pform.input :value
Ale jak tylko spróbować i grupa stowarzyszenie już nie generuje wejścia z prawidłowymi nazwami:
- @product.properties.group_by(&:group_name).each do |group_name, properties|
%h3= group_name
= form.fields_for properties do |pform|
= pform.input :value
to utworzenie wejść którego atrybut jak product[product_property][value]
name
gdy w rzeczywistości należy product[property_attributes][0][value]
jak w pierwszym przykładzie.
szyn sugeruje, można to zrobić:
= form.fields_for :properties_attributes, properties do |pform|
Ale to daje błąd „niezdefiniowanej wartości dla metody Array”.
To wydaje się działać, nie wiem, dlaczego nie spróbować ': properties' zamiast ': property_attributes'. Przyjmę wkrótce. – Kris