From 112274ebffa0cb3e5e15e61a866031d9200c5331 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20A=C3=B1asco?= Date: Mon, 8 Dec 2014 20:14:34 -0500 Subject: Fix options overwritten by super --- .../lib/action_view/helpers/tags/search_field.rb | 20 +++++++++----------- .../lib/action_view/helpers/tags/text_field.rb | 1 + actionview/test/template/form_helper_test.rb | 5 +++++ 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/actionview/lib/action_view/helpers/tags/search_field.rb b/actionview/lib/action_view/helpers/tags/search_field.rb index c09e2f1be7..4597cec6fa 100644 --- a/actionview/lib/action_view/helpers/tags/search_field.rb +++ b/actionview/lib/action_view/helpers/tags/search_field.rb @@ -3,20 +3,18 @@ module ActionView module Tags # :nodoc: class SearchField < TextField # :nodoc: def render - options = @options.stringify_keys - - if options["autosave"] - if options["autosave"] == true - options["autosave"] = request.host.split(".").reverse.join(".") + super do |options| + if options["autosave"] + if options["autosave"] == true + options["autosave"] = request.host.split(".").reverse.join(".") + end + options["results"] ||= 10 end - options["results"] ||= 10 - end - if options["onsearch"] - options["incremental"] = true unless options.has_key?("incremental") + if options["onsearch"] + options["incremental"] = true unless options.has_key?("incremental") + end end - - super end end end diff --git a/actionview/lib/action_view/helpers/tags/text_field.rb b/actionview/lib/action_view/helpers/tags/text_field.rb index 5c576a20ca..49fc81ec8c 100644 --- a/actionview/lib/action_view/helpers/tags/text_field.rb +++ b/actionview/lib/action_view/helpers/tags/text_field.rb @@ -11,6 +11,7 @@ module ActionView options["size"] = options["maxlength"] unless options.key?("size") options["type"] ||= field_type options["value"] = options.fetch("value") { value_before_type_cast(object) } unless field_type == "file" + yield options if block_given? add_default_name_and_id(options) tag("input", options) end diff --git a/actionview/test/template/form_helper_test.rb b/actionview/test/template/form_helper_test.rb index a131752b2a..1459b9f02a 100644 --- a/actionview/test/template/form_helper_test.rb +++ b/actionview/test/template/form_helper_test.rb @@ -928,6 +928,11 @@ class FormHelperTest < ActionView::TestCase assert_dom_equal(expected, search_field("contact", "notes_query")) end + def test_search_field_with_onsearch_value + expected = %{} + assert_dom_equal(expected, search_field("contact", "notes_query", onsearch: true)) + end + def test_telephone_field expected = %{} assert_dom_equal(expected, telephone_field("user", "cell")) -- cgit v1.2.3