aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-12-09 13:02:35 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-12-09 13:02:35 -0200
commit5c7b5dc741f6980de2592e9b113ae385000a6da7 (patch)
tree06da9eee3c4727c61240d1c82a262258f4825170
parent8e52954349c29d5f190f01b21e9087885afd8dab (diff)
parent112274ebffa0cb3e5e15e61a866031d9200c5331 (diff)
downloadrails-5c7b5dc741f6980de2592e9b113ae385000a6da7.tar.gz
rails-5c7b5dc741f6980de2592e9b113ae385000a6da7.tar.bz2
rails-5c7b5dc741f6980de2592e9b113ae385000a6da7.zip
Merge pull request #17975 from merongivian/add_test_for_search_field
Fix options overwritten by super
-rw-r--r--actionview/lib/action_view/helpers/tags/search_field.rb20
-rw-r--r--actionview/lib/action_view/helpers/tags/text_field.rb1
-rw-r--r--actionview/test/template/form_helper_test.rb5
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 = %{<input onsearch="true" type="search" name="contact[notes_query]" id="contact_notes_query" incremental="true" />}
+ assert_dom_equal(expected, search_field("contact", "notes_query", onsearch: true))
+ end
+
def test_telephone_field
expected = %{<input id="user_cell" name="user[cell]" type="tel" />}
assert_dom_equal(expected, telephone_field("user", "cell"))