Hi,
I want to exten ActiveRecord::Base with own methods:
class Stock < ActiveRecord::Base
def compare_own
...
end
end
But call Stock.compare_own fails:
NoMethodError: undefined method `compare_own'' for Calendar:Class
/var/lib/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1129:in
`method_missing''
But why?
I want to use only ActiveRecord from RoR, I hope this isn''t a problem.
Best regards,
Tomas
--
Posted via http://www.ruby-forum.com/.
Tomas Fischer wrote:> class Stock < ActiveRecord::Base > def compare_own > ... > end > end > > But call Stock.compare_own fails: > NoMethodError: undefined method `compare_own'' for Calendar:Class > /var/lib/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1129:in > `method_missing''You''ve defined an instance method but you''re trying to call it as a class method. Given your current code, you have to have an instance of Stock before you can call your method: s = Stock.new # or s = Stock.find(:first), etc. s.compare_own If you really mean it to be a class method, then you can define it like this: def self.compare_own ... end Does this help? Jeff www.softiesonrails.com -- Posted via http://www.ruby-forum.com/.
On Aug 11, 2006, at 7:09 PM, Tomas Fischer wrote:> > class Stock < ActiveRecord::Base > def compare_own > ... > end > end > > But call Stock.compare_own fails: > NoMethodError: undefined method `compare_own'' for Calendar:Class > /var/lib/gems/1.8/gems/activerecord-1.14.4/lib/active_record/ > base.rb:1129:in > `method_missing''You defined an instance method, but called a class method. Dave