File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -29,6 +29,12 @@ def name
2929 names . map { |name | "[#{ name } ]" } . unshift ( root ) . join
3030 end
3131
32+ # Returns the name with `[]` appended for array/multiple value fields.
33+ # Used by multiple selects, checkbox groups, etc.
34+ def array_name
35+ "#{ name } []"
36+ end
37+
3238 # Emit the id, name, and value in an HTML tag-ish that doesnt have an element.
3339 def inspect
3440 "<id=#{ id . inspect } name=#{ name . inspect } value=#{ value . inspect } />"
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ def view_template(&block)
2828 # Hidden input ensures a value is sent even when all options are
2929 # deselected in a multiple select
3030 if @multiple
31- hidden_name = field . parent . is_a? ( Superform ::Field ) ? dom . name : " #{ dom . name } []"
31+ hidden_name = field . parent . is_a? ( Superform ::Field ) ? dom . name : dom . array_name
3232 input ( type : "hidden" , name : hidden_name , value : "" )
3333 end
3434
@@ -75,7 +75,7 @@ def field_attributes
7575 if @multiple
7676 # Only append [] if the field doesn't already have a Field parent
7777 # (which would mean it's already in a collection and has [] notation)
78- name = field . parent . is_a? ( Superform ::Field ) ? attrs [ :name ] : " #{ attrs [ :name ] } []"
78+ name = field . parent . is_a? ( Superform ::Field ) ? attrs [ :name ] : dom . array_name
7979 attrs . merge ( multiple : true , name : name )
8080 else
8181 attrs
You can’t perform that action at this time.
0 commit comments