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
-~----------~----~----~----~------~----~------~--~---