Skip to content

Commit

Permalink
Merge pull request #36324 from yoones/fix-unexpected-select-tag-delet…
Browse files Browse the repository at this point in the history
…e-behavior

Fix unexpected select_tag delete behavior when include_blank is present
  • Loading branch information
eileencodes committed May 28, 2019
2 parents fc530d8 + a4229a5 commit 350ae29
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
3 changes: 3 additions & 0 deletions actionview/CHANGELOG.md
@@ -1,3 +1,6 @@
* Fix `select_tag` so that it doesn't change `options` when `include_blank` is present.

*Younes SERRAJ*


Please check [6-0-stable](https://github.com/rails/rails/blob/6-0-stable/actionview/CHANGELOG.md) for previous changes.
3 changes: 2 additions & 1 deletion actionview/lib/action_view/helpers/form_tag_helper.rb
Expand Up @@ -137,7 +137,8 @@ def select_tag(name, option_tags = nil, options = {})
html_name = (options[:multiple] == true && !name.to_s.ends_with?("[]")) ? "#{name}[]" : name

if options.include?(:include_blank)
include_blank = options.delete(:include_blank)
include_blank = options[:include_blank]
options = options.except(:include_blank)
options_for_blank_options_tag = { value: "" }

if include_blank == true
Expand Down
7 changes: 7 additions & 0 deletions actionview/test/template/form_tag_helper_test.rb
Expand Up @@ -301,6 +301,13 @@ def test_select_tag_with_include_blank
assert_dom_equal expected, actual
end

def test_select_tag_with_include_blank_doesnt_change_options
options = { include_blank: true, prompt: "string" }
expected_options = options.dup
select_tag "places", raw("<option>Home</option><option>Work</option><option>Pub</option>"), options
expected_options.each { |k, v| assert_equal v, options[k] }
end

def test_select_tag_with_include_blank_false
actual = select_tag "places", raw("<option>Home</option><option>Work</option><option>Pub</option>"), include_blank: false
expected = %(<select id="places" name="places"><option>Home</option><option>Work</option><option>Pub</option></select>)
Expand Down

0 comments on commit 350ae29

Please sign in to comment.