maddy
2009-Sep-25 09:57 UTC
NoMethodError : undefined method `stringify_keys!'' for "2":String
Hi, I have been trying to create a small Rails application. In one of the steps, I am facing this error as "NoMethodError in ContactController#update ...... undefined method `stringify_keys!'' for "2":String". Let me give a brief description of the application. This application is to Create, View and Update contacts. The problem came when updating a record. The "Update" action in controller file looks like this, def update @contact = Contact.new(params[:id]) @contact.attributes = params[:contact] @contact.save! redirect_to :action => "index" end Below is the complete error stack, ------------------------------------------- xxxxxxxxxxxxxxxx-------------------------------------------------- NoMethodError in ContactController#update undefined method `stringify_keys!'' for "2":String RAILS_ROOT: D:/rails_projects/contactlist Application Trace | Framework Trace | Full Trace D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/base.rb:2111:in `attributes='' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/base.rb:1926:in `initialize'' app/controllers/contact_controller.rb:24:in `new'' app/controllers/contact_controller.rb:24:in `update'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/base.rb:2111:in `attributes='' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/base.rb:1926:in `initialize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1158:in `send'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1158:in `perform_action_without_filters'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:697:in `call_filters'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:689:in `perform_action_without_benchmark'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' D:/RoR/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/rescue.rb:199:in `perform_action_without_caching'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:678:in `perform_action'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/query_cache.rb:8:in `cache'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:677:in `perform_action'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `send'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `process_without_filters'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:685:in `process_without_session_management_support'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/session_management.rb:123:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:388:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:171:in `handle_request'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:115:in `dispatch'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:126:in `dispatch_cgi'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:9:in `dispatch'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/rails.rb:76:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/rails.rb:74:in `synchronize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/rails.rb:74:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:159:in `process_client'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:158:in `each'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:158:in `process_client'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `initialize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `new'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:268:in `initialize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:268:in `new'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:268:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/configurator.rb:282:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/configurator.rb:281:in `each'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/configurator.rb:281:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/ mongrel_rails:128:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/command.rb:212:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/ mongrel_rails:281 D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:489:in `load'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:489:in `load'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:342:in `new_constants_in'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:489:in `load'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/ mongrel.rb:64 D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:496:in `require'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:342:in `new_constants_in'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:496:in `require'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb: 39 D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'' script/server:3 D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/base.rb:2111:in `attributes='' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/base.rb:1926:in `initialize'' app/controllers/contact_controller.rb:24:in `new'' app/controllers/contact_controller.rb:24:in `update'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1158:in `send'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:1158:in `perform_action_without_filters'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:697:in `call_filters'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:689:in `perform_action_without_benchmark'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' D:/RoR/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/benchmarking.rb:68:in `perform_action_without_rescue'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/rescue.rb:199:in `perform_action_without_caching'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:678:in `perform_action'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/ active_record/query_cache.rb:8:in `cache'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/caching.rb:677:in `perform_action'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `send'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:524:in `process_without_filters'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/filters.rb:685:in `process_without_session_management_support'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/session_management.rb:123:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/base.rb:388:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:171:in `handle_request'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:115:in `dispatch'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:126:in `dispatch_cgi'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/ action_controller/dispatcher.rb:9:in `dispatch'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/rails.rb:76:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/rails.rb:74:in `synchronize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/rails.rb:74:in `process'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:159:in `process_client'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:158:in `each'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:158:in `process_client'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `initialize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `new'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:285:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:268:in `initialize'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:268:in `new'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel.rb:268:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/configurator.rb:282:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/configurator.rb:281:in `each'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/configurator.rb:281:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/ mongrel_rails:128:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/ mongrel/command.rb:212:in `run'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/ mongrel_rails:281 D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:489:in `load'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:489:in `load'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:342:in `new_constants_in'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:489:in `load'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/ mongrel.rb:64 D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:496:in `require'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:342:in `new_constants_in'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/ active_support/dependencies.rb:496:in `require'' D:/RoR/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb: 39 D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' D:/RoR/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'' script/server:3 Request Parameters: {"commit"=>"Update", "authenticity_token"=>"9ebbca881cc0e31be50530d9b3f1a38fcf1a74d1", "contact"=>{"city"=>"bangalo", "country"=>"India", "phone"=>"234122342", "first_name"=>"abc", "last_name"=>"def", "address"=>"weiwq, werwqqq, wer", "state"=>"KA", "email"=>"adns-jzWB7PFLUjI@public.gmane.org"}, "id"=>"2"} Show session dump --- :csrf_id: 5d52f51ba29b9131292e9e783e78f09b flash: !map:ActionController::Flash::FlashHash {} Response Headers: {"cookie"=>[], "Cache-Control"=>"no-cache"} ------------------------------------------------- xxxxxxxxxxxxxxxxxxxxxxx---------------------------------------- What I feel is that there is something wrong with this statement in ''Update'' action, @contact.attributes = params[:contact] I just don''t have enough command on this language to exactly know the problem. Can anyone help me solving this problem? Please do let me know if any additional details are needed. Many Thanks!! Maddy
Amar Daxini
2009-Sep-25 10:41 UTC
Re: NoMethodError : undefined method `stringify_keys!'' for "2":String
maddy wrote:>I think you are updating @contact @contact.update_attributes(params[:contact]) -- Posted via http://www.ruby-forum.com/.
Frederick Cheung
2009-Sep-25 10:59 UTC
Re: NoMethodError : undefined method `stringify_keys!'' for "2":String
On Sep 25, 10:57 am, maddy <murali.man...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> The "Update" action in controller file looks like this, > > def update > @contact = Contact.new(params[:id])This should be Contact.find Fred> -Ynu+NT5FEZ2xJTTgsDN3Wt7lo5+wdyHW@public.gmane.org = params[:contact] > -Ynu+NT5FEZ1LYScDn9snng@public.gmane.org! > redirect_to :action => "index"