Tengo problemas para obtener fields_for
para trabajar en un atributo Array de un modelo que no es ActiveRecord.form_for non-AR model - fields_for El atributo Array no itera
destilada abajo, tengo que siguiente:
modelos/parent.rb
class Parent
extend ActiveModel::Naming
include ActiveModel::Conversion
include ActiveModel::Validations
extend ActiveModel::Translation
attr_accessor :bars
end
controladores/parent_controller.rb
def new_parent
@parent = Parent.new
@parent.bars = ["hello", "world"]
render 'new_parent'
end
vistas/new_parent.html.haml
= form_for @parent, :url => new_parent_path do |f|
= f.fields_for :bars, @parent.bars do |r|
= r.object.inspect
Con el código anterior, mi página contiene ["hello", "world"]
, es decir, el resultado de inspect
llamado en la matriz asignada al bars
. (Con @parent.bars
omitido de la línea fields_for
, acabo de mostrar nil
).
¿Cómo puedo hacer que fields_for
se comporte como una asociación de AR, es decir, ejecute el código en el bloque una vez para cada miembro de mi matriz bars
?
Gracias por esto. ¡No pensé que alguien más hubiera intentado hacer esto! ¡Gracias ... mucho! – Nitrodist