I''m having trouble trying to implement a selection field of years in a form_for block for Views. Initially, I wrote something like this: -------- <h1> Sign-up </h1> <div id="edit"> <% array_of_years = generate_year_array() %> <% form_for :person do |form| %> <h2> First Name </h2> <%= form.text_field :first_name, :size => 30 %> <h2> Last Name </h2> <%= form.text_field :last_name, :size => 30 %> <h2> RIN </h2> <%= form.text_field :last_name, :size => 10 %> <h2> Email </h2> <%= form.text_field :last_name, :size => 30, :value => ''@rpi.edu'' %> <h2> Graduation Year </h2> <%= form.select :year, array_of_years %> <br /> <%= submit_tag "Join In!" %> <%end%> </div> -------- With the helper, generate_year_array() as: -------- # Methods added to this helper will be available to all templates in the application. module ApplicationHelper #generate an array years from 4 years past to 8 years in future def generate_year_array( year = nil ) if year default_year = year.to_i else default_year = Time.now.year + 4 end begin_year = default_year - 8 end_year = default_year + 4 output = [] begin_year.upto( end_year ) do |this_year| output.push this_year.to_s end end end -------- This, unfortunately, gave me the following error: ------- 4) Error: test_valid_valid_sign_up(SignUpControllerTest): ActionView::TemplateError: undefined method `inject'' for 2004:Fixnum On line #26 of sign_up/sign_up.rhtml 23: <h2> 24: Graduation Year 25: </h2> 26: <%= form.select :year, array_of_years %> 27: <br /> 28: <%= submit_tag "Join In!" %> 29: <%end%> c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:161:in `options_for_select'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:358:in `to_select_tag'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:84:in `select'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:409:in `select'' app/views/sign_up/sign_up.rhtml:26:in `_run_erb_47app47views47sign_up47sign_up46rhtml'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_helper.rb:248:in `fields_for'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_helper.rb:184:in `form_for'' app/views/sign_up/sign_up.rhtml:6:in `_run_erb_47app47views47sign_up47sign_up46rhtml'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:637:in `send'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:637:in `compile_and_render_template'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:365:in `render_template'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:316:in `render_file'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1100:in `render_for_file'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:836:in `render_with_no_layout'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/layout.rb:262:in `render_without_benchmark'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:51:in `render'' c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:51:in `render'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1153:in `default_render'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1159:in `perform_action_without_filters'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:697:in `call_filters'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:689:in `perform_action_without_benchmark'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/rescue.rb:199:in `perform_action_without_caching'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:678:in `perform_action'' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2-/lib/ active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2-/lib/ active_record/query_cache.rb:8:in `cache'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:677:in `perform_action'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `send'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `process_without_filters'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:685:in `process_without_session_management_support'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/session_management.rb:123:in `process_without_test'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/test_process.rb:15:in `process'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/test_process.rb:393:in `process'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/test_process.rb:364:in `post'' test/functional/sign_up_controller_test.rb:9:in `test_valid_valid_sign_up'' c:/ruby/lib/ruby/1.8/test/unit/testcase.rb:78:in `__send__'' c:/ruby/lib/ruby/1.8/test/unit/testcase.rb:78:in `run'' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2-/lib/ active_support/testing/default.rb:7:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'' c:/ruby/lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in `run_suite'' c:/ruby/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:67:in `start_mediator'' c:/ruby/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:41:in `start'' c:/ruby/lib/ruby/1.8/test/unit/ui/testrunnerutilities.rb:29:in `run'' c:/ruby/lib/ruby/1.8/test/unit/autorunner.rb:216:in `run'' c:/ruby/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' c:/ruby/lib/ruby/1.8/test/unit.rb:278 c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/ rake_test_loader.rb:5 ------- Lo and behold, a little search helped me find a better solution: select_year and fields_for. However, I''m clearly doing something wrong in the example I''ll bring up next, yet the example is a little too vague to figure out what I mistake I''ve made. Can anyone help me out on this? The code I''ve attempted to use: ------------ <h1> Edit </h1> <div id="edit"> <% form_for :person do |form| %> <h2> First Name </h2> <%= form.text_field :first_name, :size => 30 %> <h2> Last Name </h2> <%= form.text_field :last_name, :size => 30 %> <h2> RIN </h2> <%= form.text_field :last_name, :size => 10 %> <h2> Email </h2> <%= form.text_field :last_name, :size => 30 %> <h2> Graduation Year </h2> <br /> <!-- here is where I try to use fields_for and select_year --> <% fields_for @person.year do |year_field| %> <%= year_field.select_year( Time.now.year + 4, :start_year => Time.now.year - 4, :end_year => Time.now.year + 8 ) %> <% end %> <%= submit_tag "Join In!" %> <%end%> </div> --------- error message: ----------- 1) Error: test_no_param_edit_member(MemberListControllerTest): ActionView::TemplateError: undefined method `inject'' for 2004:Fixnum On line #26 of member_list/edit_member.rhtml 23: <h2> 24: Graduation Year 25: </h2> 26: <%= form.select :year, array_of_years %> 27: <br /> 28: <%= submit_tag "Join In!" %> 29: <%end%> c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:161:in `options_for_select'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:358:in `to_select_tag'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:84:in `select'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_options_helper.rb:409:in `select'' app/views/member_list/edit_member.rhtml:26:in `_run_erb_47app47views47member_list47edit_member46rhtml'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_helper.rb:248:in `fields_for'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ helpers/form_helper.rb:184:in `form_for'' app/views/member_list/edit_member.rhtml:6:in `_run_erb_47app47views47member_list47edit_member46rhtml'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:637:in `send'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:637:in `compile_and_render_template'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:365:in `render_template'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:316:in `render_file'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1100:in `render_for_file'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:858:in `render_with_no_layout'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:872:in `render_with_no_layout'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/layout.rb:262:in `render_without_benchmark'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:51:in `render'' c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:51:in `render'' app/controllers/member_list_controller.rb:20:in `edit_member'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1158:in `send'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1158:in `perform_action_without_filters'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:697:in `call_filters'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:689:in `perform_action_without_benchmark'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/rescue.rb:199:in `perform_action_without_caching'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:678:in `perform_action'' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2-/lib/ active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2-/lib/ active_record/query_cache.rb:8:in `cache'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:677:in `perform_action'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `send'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `process_without_filters'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:685:in `process_without_session_management_support'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/session_management.rb:123:in `process_without_test'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/test_process.rb:15:in `process'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/test_process.rb:393:in `process'' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/test_process.rb:364:in `post'' test/functional/member_list_controller_test.rb:203:in `test_no_param_edit_member'' c:/ruby/lib/ruby/1.8/test/unit/testcase.rb:78:in `__send__'' c:/ruby/lib/ruby/1.8/test/unit/testcase.rb:78:in `run'' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2-/lib/ active_support/testing/default.rb:7:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'' c:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'' c:/ruby/lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in `run_suite'' c:/ruby/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:67:in `start_mediator'' c:/ruby/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:41:in `start'' c:/ruby/lib/ruby/1.8/test/unit/ui/testrunnerutilities.rb:29:in `run'' c:/ruby/lib/ruby/1.8/test/unit/autorunner.rb:216:in `run'' c:/ruby/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' c:/ruby/lib/ruby/1.8/test/unit.rb:278 c:/ruby/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/ rake_test_loader.rb:5 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---