Hey all, just upgraded an older app to latest rspec and rails. This
code runs fine in console but fails under rspec.
class User
has_many :statuses, :extend => Status:::AssociationExtension
end
module Status::AssociationExtensions
def after(status)
find(:first, :conditions => ['statuses.created_at > ?',
status.created_at], :order => ‘statuses.created_at’)
end
end
This code works in the app and from console
recent = @user.statuses.first
status = @user.statuses.after(recent)
But in the spec, I get this: Weird, eh? It thinks that “self.class” ==
Array and can’t find the “find” method on the array instance. Is this
something in my code somewhere, or did something change with
association collections?
NoMethodError in ‘StatusesController PUT #update StatusesController
(unsuccessful save) assigns @status’
undefined method find' for #<Class:0x2521c94> /Users/courtenay/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/ active_record/base.rb:1964:in
method_missing_without_paginate’
/Users/courtenay/dev/entp/tt/vendor/plugins/will_paginate/lib/
will_paginate/finder.rb:164:in method_missing' /Users/courtenay/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/ active_record/associations/association_collection.rb:60:in
find’
/Users/courtenay/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/
active_record/associations/association_collection.rb:395:in
find_target' /Users/courtenay/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/ active_record/associations/association_collection.rb:349:in
load_target’
/Users/courtenay/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/
active_record/associations/association_proxy.rb:139:in `inspect’
spec/controllers/statuses_controller_spec.rb:249:
spec/controllers/statuses_controller_spec.rb:282: