Skip to content

Commit e1b4bc4

Browse files
committed
Use dom.array_name
1 parent bbfc64e commit e1b4bc4

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

lib/superform/dom.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff 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}/>"

lib/superform/rails/components/select.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)