class ActionView::Helpers::FormBuilder

Public Instance Methods

fields_for(record_or_name_or_array, *args, &block) click to toggle source

Override to allow the use of an index

# File lib/big_record/action_view_extensions.rb, line 238
def fields_for(record_or_name_or_array, *args, &block)
  if options.has_key?(:index)
    index = "[#{options[:index]}]"
  elsif defined?(@auto_index)
    self.object_name = @object_name.to_s.sub(/\[\]$/,"")
    index = "[#{@auto_index}]"
  else
    index = ""
  end

  case record_or_name_or_array
  when String, Symbol
    name = "#{object_name}#{index}[#{record_or_name_or_array}]"
  when Array
    object = record_or_name_or_array.last
    name = "#{object_name}#{index}[#{ActionController::RecordIdentifier.singular_class_name(object)}]"
    args.unshift(object)
  else
    object = record_or_name_or_array
    name = "#{object_name}#{index}[#{ActionController::RecordIdentifier.singular_class_name(object)}]"
    args.unshift(object)
  end

  @template.fields_for(name, *args, &block)
end