From c6dcc3537c09829cbbb15a6e9b133ab0bcd93988 Mon Sep 17 00:00:00 2001 From: Jeremy Walker Date: Sun, 22 Jan 2012 13:39:15 +0000 Subject: Allow form.select to accept ranges. --- .../lib/action_view/helpers/form_options_helper.rb | 1 + actionpack/test/template/form_options_helper_test.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/actionpack/lib/action_view/helpers/form_options_helper.rb b/actionpack/lib/action_view/helpers/form_options_helper.rb index 3ee0d8ebc5..0dd4b19573 100644 --- a/actionpack/lib/action_view/helpers/form_options_helper.rb +++ b/actionpack/lib/action_view/helpers/form_options_helper.rb @@ -578,6 +578,7 @@ module ActionView def to_select_tag(choices, options, html_options) selected_value = options.has_key?(:selected) ? options[:selected] : value(object) + choices = choices.to_a if choices.is_a?(Range) # Grouped choices look like this: # diff --git a/actionpack/test/template/form_options_helper_test.rb b/actionpack/test/template/form_options_helper_test.rb index 4a889beadd..62ab208c2e 100644 --- a/actionpack/test/template/form_options_helper_test.rb +++ b/actionpack/test/template/form_options_helper_test.rb @@ -159,6 +159,13 @@ class FormOptionsHelperTest < ActionView::TestCase ) end + def test_range_options_for_select + assert_dom_equal( + "\n\n", + options_for_select(1..3) + ) + end + def test_hash_options_for_select assert_dom_equal( "\n", @@ -671,6 +678,15 @@ class FormOptionsHelperTest < ActionView::TestCase ) end + def test_select_with_range + @post = Post.new + @post.category = 0 + assert_dom_equal( + "", + select("post", "category", 1..3) + ) + end + def test_collection_select @post = Post.new @post.author_name = "Babe" -- cgit v1.2.3