[rspec-devel] [ rspec-Bugs-6760 ] fatal error when accessing nested finders in rspec

noreply at rubyforge.org noreply at rubyforge.org
Fri Nov 24 17:18:00 EST 2006


Bugs item #6760, was opened at 2006-11-18 05:52
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=3149&aid=6760&group_id=797

Category: rails plugin
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Chad Humphries (spicycode)
>Assigned to: David Chelimsky (dchelimsky)
Summary: fatal error when accessing nested finders in rspec

Initial Comment:
We have several models that have relationships defined like this (on edge rails):


has_many :items do
  def incomplete
    find(:all, :conditions => 'completed_at is null')
  end
  def complete
    find(:all, :conditions => 'completed_at is not null')
  end
end

This let's you do things like object.items.incomplete and object.items.complete... however in rspec if you try to use a model that has this type of collection in 0.7.X and up you get a repeating error (2-3 pages of it) after a long delay (30-90 seconds) that says something along the lines of:

[project_path]/config/../vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb:98:in `method_missing'

If you remove the nested finders (ie change it to just be has_many :items) it works fine again.

I'll try to investigate and see if I can find the cause, submitting as bug as it's rather late here.

----------------------------------------------------------------------

>Comment By: David Chelimsky (dchelimsky)
Date: 2006-11-24 22:18

Message:
This one is going to stay broken until 0.8 because commenting that out will bring back another bug. This is all related to conflicts between RSpec's and Rails' use of method_missing. 0.8 will remove RSpec's use of method missing on Object.

----------------------------------------------------------------------

Comment By: Chad Humphries (spicycode)
Date: 2006-11-18 16:17

Message:
It looks like the line:

ActiveRecord::Associations::HasManyAssociation.handle_underscores_for_rspec!

is causing it.  If I comment it out in the plugin (0.7.2)
things start working again in tests against models with this
type of association.

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=3149&aid=6760&group_id=797


More information about the rspec-devel mailing list