Validate callback balks when using AR.find method


#1

In an AR model (PrivilegedUser), I have several custom validations, so
am using validate method to call a sequence of other small methods which
perform specific tasks.

def validate
do_this
do_that
end

In do_this, I need to look up records from the same table/model I am in
to do some comparing of the current object being created/updated to
existing data.

def do_this
results = PrivilegedUser.find(:all, :condition => … )
…do some stuff…
end

No matter what form I try that find method with (find, self.find,
PrivilegedUser.find), Rails balks that find is not a method of
PrivilegedUser.

If I substitute PrivilegedUser.find with some other class, it works just
fine. PrivilegedUser is a working AR subclass that I have been using for
months, and am now adding this new method, and I already have find being
used in other methods. So, there’s something unique about trying to use
find in the validation callback somehow.

I’m obviously not understanding something. Can someone essplain to me?
Thx.

– gw


#2

I do exactly what you describe with no problems. Are you sure you have
not
just got a typo somewhere that your brain is refusing to see?

2009/3/5 Greg W. removed_email_address@domain.invalid


#3

Colin L. wrote:

I do exactly what you describe with no problems. Are you sure you have
not just got a typo somewhere that your brain is refusing to see?

Always a possibility. I’ll keep looking. But thanks for the verification
that it should work.

Other possible extenuating circumstances I realized might be worth
mentioning:

  • this is a 1.2.6 legacy app
  • PrivilegedUser is actually a subclass of an abstract class to
    facilitate connecting to multiple databases w/in the same app. However,
    this hasn’t posed any problems anywhere else.

class CountyActiveRecord < ActiveRecord::Base
@@county_domain = Thread.current[:county_domain]
self.abstract_class = true
establish_connection("#{RAILS_ENV}_#{@@county_domain}".to_sym)
end

class PrivilegedUser < CountyActiveRecord
… etc etc…
end

– gw