John Merlino
unread,Mar 21, 2012, 5:12:09 PM3/21/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Ruby on Rails: Talk
Hey all,
I looked at source code for fields_for:
def fields_for(record_name, record_object = nil, fields_options = {},
&block)
fields_options, record_object = record_object, nil if
record_object.is_a?(Hash) && record_object.extractable_options?
fields_options[:builder] ||= options[:builder]
fields_options[:parent_builder] = self
fields_options[:namespace] =
fields_options[:parent_builder].options[:namespace]
case record_name
when String, Symbol
if nested_attributes_association?(record_name)
return fields_for_with_nested_attributes(record_name,
record_object, fields_options, block)
end
else
record_object = record_name.is_a?(Array) ? record_name.last :
record_name
record_name = ActiveModel::Naming.param_key(record_object)
end
index = if options.has_key?(:index)
"[#{options[:index]}]"
elsif defined?(@auto_index)
self.object_name = @object_name.to_s.sub(%r\[\]$/,"")
"[#{@auto_index}]"
end
record_name = "#{object_name}#{index}[#{record_name}]"
@template.fields_for(record_name, record_object, fields_options,
&block)
end
Notice this part:
options[:builder]
this options hash is no where to be defined. In argument list, there's
only a fields_options hash. Reason why this matters to me is because I
am trying to override this method in my application_helper.rb in order
to extend it.