def build_name(*args)
      args.extend(DeepFlattening)
      args = args.deep_flatten
      name = args.shift.to_s
      name + args.map {|piece| "[#{piece}]"}.join
    end
def build_name(*args)
      args.extend(DeepFlattening)
      args = args.deep_flatten
      name = args.shift.to_s
      name + args.map {|piece| "[#{piece}]"}.join
    end
Converts an array or hash of names to a name for an input form.

 @example
   build_name(:foo => :bar)            # => "foo[bar]"
   build_name(:foo, :bar)              # => "foo[bar]"
   build_name(:foo => {:bar => :baz})  # => "foo[bar][baz]"
   build_name(:foo, :bar => :baz)      # => "foo[bar][baz]"

 @param [Array, Hash]  args  A hierarchy of strings.

 @return [String] The expected name of the form input.