Morning (as appropriate) all! I''m having a problem with rails 2.0.1 and am hoping somebody here might be able to help me out. I''m building a flex/rubyamf/rails app, and I''m having trouble saving object graphs. Here''s an example. Model: Contest has_many Prizes Model: Prize belongs_to Contest has_many Wins Model: Win belongs to Prize When I create my Contest, I am populating Prizes, however, I''m not populating Wins. When I get to ContestsController.create and do @contest.save it''s blowing up (stack below) because it doesn''t like that @contest.prizes.wins is nil. There are no validations on wins, and I really suspect I SHOULD be able to do this. Anybody have an idea what might be wrong? I know that my objects are good when they hit the controller, so it''s not rubyamf at this point. . .that was a whole other story ; ) Here are the params and dump: Parameters: {0=>#<Contest id: nil, name: "bbb", start_date: "2008-03-03 00:00:00", end_date: "2008-03-09 00:00:00", submitted_by_id: nil, approved: false, approved_by_id: nil, approved_at: nil, eligibility_id: 1, contest_category_id: 1, frequency_id: 1, entry_instructions: nil, contest_url: nil, rules_url: nil, company_url: nil, rules_text: nil, notes: nil, premium: false, recommended: false, admin_notes: nil, created_at: nil, updated_at: nil>, "contest"=>{"start_date"=>Mon Mar 03 00:00:00 -0600 2008, "rules_url"=>nil, "name"=>"bbb", "end_date"=>Sun Mar 09 00:00:00 -0600 2008, "contest_bookmarks"=>nil, "updated_at"=>nil, "premium"=>false, "prizes"=>[#<Prize id: nil, quantity: 2, description: "bbb", estimated_value: 2, prize_category_id: 1, contest_id: nil, admin_notes: nil, created_at: nil, updated_at: nil>], "submitted_by_id"=>nil, "company_url"=>nil, "contest_category"=>#<ContestCategory id: 1, name: "Instant", description: "Instant Win", admin_notes: nil>, "approved_by"=>nil, "comments"=>nil, "attributes_cache"=>{}, "ratings"=>nil, "notes"=>nil, "approved"=>false, "attributes"=>{"start_date"=>Mon Mar 03 00:00:00 -0600 2008, "end_date"=>Sun Mar 09 00:00:00 -0600 2008, "rules_url"=>nil, "name"=>"bbb", "premium"=>false, "updated_at"=>nil, "submitted_by_id"=>nil, "company_url"=>nil, "notes"=>nil, "approved"=>false, "eligibility_id"=>1, "entry_instructions"=>nil, "frequency_id"=>1, "contest_url"=>nil, "recommended"=>false, "approved_by_id"=>nil, "approved_at"=>nil, "rules_text"=>nil, "admin_notes"=>nil, "contest_category_id"=>1, "created_at"=>nil}, "eligibility_id"=>1, "eligibility"=>#<Eligibility id: 1, name: "Alive", description: "Aliv", admin_notes: nil>, "entry_instructions"=>nil, "frequency_id"=>1, "contest_url"=>nil, "recommended"=>false, "approved_by_id"=>nil, "approved_at"=>nil, "submitted_by"=>nil, "rules_text"=>nil, "created_at"=>nil, "contest_category_id"=>1, "admin_notes"=>nil, "frequency"=>#<Frequency id: 1, name: "Daily", description: "Daily Entry", interval: 0, admin_notes: nil>}, "action"=>"create", "controller"=>"contests"} NoMethodError (undefined method `each'' for #<Class:0x2837654>): /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ base.rb:1459:in `method_missing'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_collection.rb:164:in `send'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_collection.rb:164:in `method_missing'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ base.rb:1620:in `with_scope'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_collection.rb:164:in `send'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_collection.rb:164:in `method_missing'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations.rb:1067:in `validate_associated_records_for_wins'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:967:in `send'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:967:in `run_validations'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:965:in `each'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:965:in `run_validations'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:929:in `valid_without_callbacks?'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ callbacks.rb:273:in `valid?'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations.rb:1072:in `validate_associated_records_for_prizes'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_proxy.rb:124:in `each'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_proxy.rb:124:in `send'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_proxy.rb:124:in `method_missing'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations/association_collection.rb:162:in `method_missing'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ associations.rb:1067:in `validate_associated_records_for_prizes'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:967:in `send'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:967:in `run_validations'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:965:in `each'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:965:in `run_validations'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:929:in `valid_without_callbacks?'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ callbacks.rb:273:in `valid?'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ validations.rb:900:in `save_without_transactions'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ transactions.rb:108:in `save'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ connection_adapters/abstract/database_statements.rb:66:in `transaction'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ transactions.rb:80:in `transaction'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ transactions.rb:100:in `transaction'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ transactions.rb:108:in `save'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ transactions.rb:120:in `rollback_active_record_state!'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ transactions.rb:108:in `save'' /app/controllers/contests_controller.rb:70:in `create'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ mime_responds.rb:106:in `call'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ mime_responds.rb:106:in `respond_to'' /app/controllers/contests_controller.rb:69:in `create'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:1168:in `send'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:1168:in `perform_action_without_filters'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ filters.rb:697:in `call_filters'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ filters.rb:689:in `perform_action_without_benchmark'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ benchmarking.rb:68:in `perform_action_without_rescue'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/1.8/benchmark.rb:293:in `measure'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ benchmarking.rb:68:in `perform_action_without_rescue'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ rescue.rb:199:in `perform_action_without_caching'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ caching.rb:678:in `perform_action'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ connection_adapters/abstract/query_cache.rb:33:in `cache'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ query_cache.rb:8:in `cache'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ caching.rb:677:in `perform_action'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:524:in `send'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:524:in `process_without_filters'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ filters.rb:685:in `process_without_session_management_support'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ session_management.rb:123:in `process'' /vendor/plugins/rubyamf/app/actions.rb:139:in `invoke'' /vendor/plugins/rubyamf/app/actions.rb:86:in `run'' /vendor/plugins/rubyamf/app/filters.rb:53:in `run'' /vendor/plugins/rubyamf/app/filters.rb:51:in `each'' /vendor/plugins/rubyamf/app/filters.rb:51:in `run'' /vendor/plugins/rubyamf/app/filters.rb:49:in `upto'' /vendor/plugins/rubyamf/app/filters.rb:49:in `run'' /vendor/plugins/rubyamf/app/filters.rb:11:in `run'' /vendor/plugins/rubyamf/app/filters.rb:10:in `each'' /vendor/plugins/rubyamf/app/filters.rb:10:in `run'' /vendor/plugins/rubyamf/app/rails_gateway.rb:28:in `service'' /app/controllers/rubyamf_controller.rb:16:in `gateway'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:1168:in `send'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:1168:in `perform_action_without_filters'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ filters.rb:697:in `call_filters'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ filters.rb:689:in `perform_action_without_benchmark'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ benchmarking.rb:68:in `perform_action_without_rescue'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/1.8/benchmark.rb:293:in `measure'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ benchmarking.rb:68:in `perform_action_without_rescue'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ rescue.rb:199:in `perform_action_without_caching'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ caching.rb:678:in `perform_action'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ connection_adapters/abstract/query_cache.rb:33:in `cache'' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.1/lib/active_record/ query_cache.rb:8:in `cache'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ caching.rb:677:in `perform_action'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:524:in `send'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:524:in `process_without_filters'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ filters.rb:685:in `process_without_session_management_support'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ session_management.rb:123:in `process'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ base.rb:388:in `process'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ dispatcher.rb:171:in `handle_request'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ dispatcher.rb:115:in `dispatch'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ dispatcher.rb:126:in `dispatch_cgi'' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.1/lib/action_controller/ dispatcher.rb:9:in `dispatch'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in `process'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `synchronize'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `process'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in `process_client'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `each'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `process_client'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `initialize'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `new'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `initialize'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `new'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `each'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243 /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:489:in `load'' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:489:in `load'' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:342:in `new_constants_in'' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:489:in `load'' /Library/Ruby/Gems/1.8/gems/rails-2.0.1/lib/commands/servers/ mongrel.rb:64 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/1.8/rubygems/custom_require.rb:27:in `require'' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:496:in `require'' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:342:in `new_constants_in'' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.1/lib/active_support/ dependencies.rb:496:in `require'' /Library/Ruby/Gems/1.8/gems/rails-2.0.1/lib/commands/server.rb:39 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ ruby/1.8/rubygems/custom_require.rb:27:in `require'' script/server:3 Thanks all! H --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---