Sto tentando di creare un modulo che mi consenta di inviare nuovi record per un'associazione in cui sono raggruppati gli input di associazione.raggruppamento e campi_per
class Product < AR::Base
has_many :properties
accepts_nested_attributes_for :properties
end
noti che nel controllore una serie di proprietà sono costruiti per il prodotto, in modo @product.properties.empty? # => false
.
Il valore sotto fields_for
fornisce gli ingressi corretti con nomi come product[properties_attributes][0][value]
.
= form.fields_for :properties do |pform|
= pform.input :value
Ma non appena cerco di gruppo l'associazione che non genera più ingressi con i nomi corretti:
- @product.properties.group_by(&:group_name).each do |group_name, properties|
%h3= group_name
= form.fields_for properties do |pform|
= pform.input :value
Questo crea ingressi che l'attributo name
come product[product_property][value]
quando in realtà dovrebbe essere product[property_attributes][0][value]
come al primo esempio.
The Rails documentazione suggerisce che si può fare questo:
= form.fields_for :properties_attributes, properties do |pform|
Ma questo dà un errore "valore di metodo non definito Array".
Questo sembra funzionare, non so il motivo per cui non ho provato ': properties' invece di ': property_attributes'. Accettiamo a breve. – Kris