Skip to content
Browse files

Merge pull request #10173 from nashby/element-attributes

options_from_collection_for_select helper takes html attributes
  • Loading branch information...
2 parents ef7a48d + 0778290 commit 169273227184f3bc1fc85ba61f76cbedfcfb3338 @rafaelfranca rafaelfranca committed
View
5 actionpack/CHANGELOG.md
@@ -1,4 +1,9 @@
## Rails 4.0.0 (unreleased) ##
+* Element of the collection for `options_from_collection_for_select` helper can
+ optionally contain html attributes as the last element of the array as
+ `options_for_select` helper.
+
+ *Vasiliy Ermolovich*
* Fix explicit names on multiple file fields. If a file field tag has
the multiple option, it is turned into an array field (appending `[]`),
View
2 actionpack/lib/action_view/helpers/form_options_helper.rb
@@ -380,7 +380,7 @@ def options_for_select(container, selected = nil)
# should produce the desired results.
def options_from_collection_for_select(collection, value_method, text_method, selected = nil)
options = collection.map do |element|
- [value_for_collection(element, text_method), value_for_collection(element, value_method)]
+ [value_for_collection(element, text_method), value_for_collection(element, value_method), option_html_attributes(element)]
end
selected, disabled = extract_selected_and_disabled(selected)
select_deselect = {
View
7 actionpack/test/template/form_options_helper_test.rb
@@ -100,6 +100,13 @@ def test_collection_options_with_proc_for_text_method
)
end
+ def test_collection_options_with_element_attributes
+ assert_dom_equal(
+ "<option value=\"USA\" class=\"bold\">USA</option>",
+ options_from_collection_for_select([[ "USA", "USA", { :class => 'bold' } ]], :first, :second)
+ )
+ end
+
def test_string_options_for_select
options = "<option value=\"Denmark\">Denmark</option><option value=\"USA\">USA</option><option value=\"Sweden\">Sweden</option>"
assert_dom_equal(

0 comments on commit 1692732

Please sign in to comment.
Something went wrong with that request. Please try again.