Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #4994: test_params_stringify.diff

File test_params_stringify.diff, 1.8 kB (added by kastberg@tkwsping.nl, 2 years ago)
  • actionpack/test/controller/test_test.rb

    old new  
    302302  end 
    303303 
    304304  def test_params_passing 
    305     get :test_params, :page => {:name => "Page name", :month => '4', :year => '2004', :day => '6'} 
     305    get :test_params, :page => {:name => "Page name", :month => 4, :year => '2004', :day => '6'} 
    306306    parsed_params = eval(@response.body) 
    307307    assert_equal( 
    308308      {'controller' => 'test_test/test', 'action' => 'test_params', 
  • actionpack/lib/action_controller/test_process.rb

    old new  
    9797    def path 
    9898      @path || super() 
    9999    end 
    100  
     100    def stringify_params(parameters) 
     101      parameters.inject({}) do |ret,(key,value)| 
     102        if value.is_a? Fixnum 
     103          ret[key] = value.to_s 
     104        elsif value.is_a? Hash 
     105          ret[key] = stringify_params(value) 
     106        else 
     107          ret[key] = value 
     108        end 
     109        ret 
     110      end 
     111    end 
    101112    def assign_parameters(controller_path, action, parameters) 
    102113      parameters = parameters.symbolize_keys.merge(:controller => controller_path, :action => action) 
    103114      extra_keys = ActionController::Routing::Routes.extra_keys(parameters) 
    104115      non_path_parameters = get? ? query_parameters : request_parameters 
     116      parameters = stringify_params(parameters) 
    105117      parameters.each do |key, value| 
    106         if value.is_a? Fixnum 
    107           value = value.to_s 
    108         elsif value.is_a? Array 
     118        if value.is_a? Array 
    109119          value = ActionController::Routing::PathSegment::Result.new(value) 
    110120        end 
    111121