Pregunta

¿Alguna forma de acceder a un Form_Bulder.Object anidado?

## controller
@project = Project.new
@project.tasks.build

form_for(@project) do |f|
  f.object.nil? ## returns false

  fields_for :tasks do |builder|
    builder.object.nil? ## returns true
  end
end
¿Fue útil?

Solución

Debe haber aceptado_nested_attributes_ para en el modelo de proyecto para que se apruebe el objeto.

class Project < ActiveRecord::Base
  has_many :tasks
  accepts_nested_attributes_for :tasks ## this is required
end

Otros consejos

fields_for requiere que el método tasks_attributes= existe. accepts_nested_attributes_for :tasks Crea este método para ti, pero también puedes definirlo tú mismo:

def tasks_attributes=(params)
  # ... manually apply attributes in params to tasks
end

Cuando este método no existe, el builder.object termina siendo nulo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top