Fields_For Form Builder Object es nulo
-
18-09-2019 - |
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
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