It's strange for me to write something that disputes my post earlier. I just spent an hour trying to fix "stack level too deep" error. Only to find out that it has to do with named scopes.
Here's the problem. I have a class called Food (not really food but since I'm hungry it's all I could think of right now). Food has many food types.
This was wrong:
class Food < ActiveRecord::Base def self.kids where(food_type_id: 1) end def self.pets where(food_type_id: 2) end end
I got stack level too deep error. Calling Food.all also didn't work. Puzzling right? I'm using Rails 3.0.3.
This worked however:
class Food < ActiveRecord::Base scope :kids, where(food_type_id: 1) scope :pets, where(food_type_id: 2) scope :expired, conditions: ["expiration_date <= ?", Time.current] end
So it works now. But I have no idea why.
Update: The issue with the method is now fixed.comments powered byDisqus