So how is the conditions clause built.  can you log it before passing it to
find?

Al

On Mon, Feb 2, 2009 at 12:06 PM, MaggotChild <hsomob1...@yahoo.com> wrote:

>
> This SystemStackError  is driving me crazy. It only takes place when
> testing with WEBrick - I can't reproduce it with any tests. It is
> caused by calling the "missing" id method (base.rb:2435) on my
> ActiveRecord class.
>
> WEBrick and my tests are running as the same user, with a `ulimit -s`
> of 10240. Plus the query works sometimes so I don't think this
> matters.
>
> Here's the trace:
>
> /usr/lib/ruby/1.8/set.rb:93:in `empty?'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> attribute_methods.rb:64:in `generated_methods?'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> attribute_methods.rb:237:in `method_missing'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> attribute_methods.rb:245:in `method_missing'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> base.rb:2435:in `hash'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:13:in `uniq'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:13:in `preload_associations'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> base.rb:1343:in `find_every'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> base.rb:536:in `find'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:254:in `find_associated_records'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:154:in `preload_has_many_association'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:40:in `send'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:40:in `preload_one_association'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:38:in `each'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:38:in `preload_one_association'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:17:in `preload_associations'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:16:in `preload_associations'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:16:in `each'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> association_preload.rb:16:in `preload_associations'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> base.rb:1343:in `find_every'
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> base.rb:536:in `find'
> app/models/package.rb:29:in `search'
>
>
> The thing is, sometimes it works -at first. And usually results in the
> trace ending before Set.empty?
> at:
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
> attribute_methods.rb:64:in
>
> Here's the relevant parts of my code:
>
> class Package < ActiveRecord::Base
>  has_many :deliveries,  #,:select=>'id, user, host, delivered,
> region_id, package_id',
>                  :include=>:region,
>                  :dependent=>:delete_all
>
>  def self.search(criteria)
>   raise ArgumentError, 'argument must be of type SearchCriteria'
> unless criteria.is_a\
> ?(SearchCriteria)
>    clause = build_search_where_clause(criteria)
>    find(:all, :include=>[:deliveries], :conditions=>clause)
>  end
> end
>
> class Delivery < ActiveRecord::Base
>  belongs_to :package
>  belongs_to :region
> end
>
> class Region < ActiveRecord::Base
>  has_many :deliveries
> end
>
> Looking at the SQL output, the exception is occurring after
> the :deliveries relation is queried.
> At first I though it was because I left out the id field from the
> has_many :deliveries, :select=>'...'
> But I commented it out and still no luck.
>
> Any suggestions/ideas are greatly appreciated.
>
>
>
>
>
>
> >
>


-- 
Available for Ruby on Rails development opportunities

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

Reply via email to