I was using the to-csv and fastercsv gem. When I commented them out of
my environment.rb, the error disappeared. I don't know which gem was
causing it, but not using either of them has fixed it for now. I will
still need CSV export functionality, but now I can at least test if it
doesn't break nested forms .. :)

Thanks Simon!

On Wed, Sep 15, 2010 at 9:02 AM, Simon <[email protected]> wrote:
> I can't really test this right now but here's a thought:
>
> - If you create a new ReferralProgram with new Pages there shouldn't
> be a Page ID in the params because these Pages don't exist yet (If you
> assign existing pages double check if a Page with that ID exists).
> - If I remember this correctly multiple nested objects have to be in
> an array in the params like:
>
> "pages_attributes" => [ {"body"=>"blabla", "subject"=>"blabla"},
> {"body" => "blublu", "subject"=>"blublu"} ]
>
> Hope this helps a little!
> Simon
>
> On Sep 14, 5:08 pm, Commander Johnson <[email protected]>
> wrote:
>> Hi,
>>
>> When updating a ReferralProgram object that has nested Pages in it I
>> get the error in the subject line.
>>
>> Rails generates parameters that look like this:
>>
>> {"pages_attributes"=>{"0"=>{"body"=>"blabla",
>>  "subject"=>"blabla",
>>  "id"=>"1"}}}
>>
>> When the id parameter is removed like this:
>>
>> {"pages_attributes"=>{"0"=>{"body"=>"blabla"}}}
>>
>> The exception is not raised. Any ideas on this?
>>
>> The relevant part that 'crashes' the form:
>>
>> form.html.haml
>> ---
>> - form.inputs :name => I18n.translate("strings.pages") do
>>   - form.semantic_fields_for :pages do |pages|
>>     %h3= pages.object.title
>>     %div.page_description= pages.label :description, pages.object.description
>>     = pages.input :subject unless pages.object.name.eql?("thankyou_page")
>>     = pages.input :body
>>
>> Example console session:
>>
>> ru...@user-laptop:~/rails/1referralprogram$ script/console
>> Loading development environment (Rails 2.3.8)
>> h = {"pages_attributes"=>{"0"=>{"body"=>"blabla",
>>  "subject"=>"blabla",
>>  "id"=>"1"}}}>> h = {"pages_attributes"=>{"0"=>{"body"=>"blabla",
>> ?>  "subject"=>"blabla",
>> ?>  "id"=>"1"}}}
>> => {"pages_attributes"=>{"0"=>{"body"=>"blabla", "id"=>"1",
>> "subject"=>"blabla"}}}>> r = ReferralProgram.new(h)
>>
>> NoMethodError: undefined method `to_sym' for nil:NilClass
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/whiny_ni 
>> l.rb:52:in
>> `method_missing'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:23 
>> 02:in
>> `expand_hash_conditions_for_aggregates'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:23 
>> 01:in
>> `each'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:23 
>> 01:in
>> `expand_hash_conditions_for_aggregates'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:23 
>> 33:in
>> `sanitize_sql_hash_for_conditions'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:22 
>> 66:in
>> `sanitize_sql'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:15 
>> 24:in
>> `merge_conditions'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:15 
>> 22:in
>> `each'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:15 
>> 22:in
>> `merge_conditions'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:18 
>> 34:in
>> `add_conditions!'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:17 
>> 17:in
>> `construct_finder_sql'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:15 
>> 78:in
>> `find_every'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:61 
>> 8:in
>> `find'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:63 
>> 8:in
>> `all'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associatio 
>> ns/association_collection.rb:380:in
>> `send'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associatio 
>> ns/association_collection.rb:380:in
>> `method_missing_without_paginate'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:21 
>> 78:in
>> `with_scope'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associatio 
>> ns/association_proxy.rb:207:in
>> `send'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associatio 
>> ns/association_proxy.rb:207:in
>> `with_scope'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associatio 
>> ns/association_collection.rb:376:in
>> `method_missing_without_paginate'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/will_paginate-2.3.14/lib/will_paginate/finder.r 
>> b:170:in
>> `method_missing'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/nested_att 
>> ributes.rb:349:in
>> `assign_nested_attributes_for_collection_association'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/nested_att 
>> ributes.rb:244:in
>> `pages_attributes='
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:29 
>> 06:in
>> `send'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:29 
>> 06:in
>> `assign_attributes'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:29 
>> 02:in
>> `each'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:29 
>> 02:in
>> `assign_attributes'
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:27 
>> 75:in
>> `attributes='
>>         from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/base.rb:24 
>> 73:in
>> `initialize'
>>         from 
>> /home/user/rails/1referralprogram/app/models/referral_program.rb:34:in
>> `initialize'
>>         from (irb):4:in `new'
>>         from (irb):4>> h = {"pages_attributes"=>{"0"=>{"body"=>"blabla"}}}
>> => {"pages_attributes"=>{"0"=>{"body"=>"blabla"}}}>> r = 
>> ReferralProgram.new(h)
>>
>> => #<ReferralProgram id: nil, name: nil, title: nil, description: nil,
>> display_url: nil, destination_url: nil, image_file_name: nil,
>> image_content_type: nil, image_file_size: nil, image_updated_at: nil,
>> bonus_file_name: nil, bonus_content_type: nil, bonus_file_size: nil,
>> bonus_updated_at: nil, support_contact_name: nil,
>> support_email_address: nil, minimum_contacts_per_referral: 1,
>> minimum_clicks_per_referral: 0, deleted_at: nil, created_at: nil,
>> updated_at: nil>
>>
>>
>>
>>
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to