Any way to access a nested form_bulder.object?
## 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
You must have accepts_nested_attributes_for in the Project model in order for the object to be passed.
class Project < ActiveRecord::Base
has_many :tasks
accepts_nested_attributes_for :tasks ## this is required
end
fields_for
requires that the method tasks_attributes=
exists. accepts_nested_attributes_for :tasks
creates this method for you, but you can also just define it yourself:
def tasks_attributes=(params)
# ... manually apply attributes in params to tasks
end
When this method does not exist, the builder.object
ends up being nil.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With