Forum: Ruby on Rails stack level too deep from has_many / belongs_to relationship

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
C004d67820a114e24ccf6f2ddaf5b236?d=identicon&s=25 Richard Livsey (Guest)
on 2006-01-20 22:58
(Received via mailing list)
I have the following 3 models (2 models joined by an intermediate):

1. class Exercise < ActiveRecord::Base
2.   has_many :routines, :class_name=>'RoutineExercise'
3. end

1. class Routine < ActiveRecord::Base
2.   has_many :exercises,
3.            :class_name=>'RoutineExercise',
4.            :order=>'position'
5. end

1. class RoutineExercise < ActiveRecord::Base
2.   set_table_name "exercises_routines"
3.   set_primary_key 'join_id'
5.   belongs_to :routine
6.   belongs_to :exercise
8.   acts_as_list :scope => :routine_id
9. end

 From this I'm getting 'stack level too deep' errors:

... snip ...
#{RAILS_ROOT}/app/controllers/items_controller.rb:462:in `const_get'
#{RAILS_ROOT}/app/controllers/items_controller.rb:462:in `item_class'
#{RAILS_ROOT}/app/controllers/items_controller.rb:112:in `new'

So this seems to be getting into a recursive loop around the
RoutineExercise belonging to Routine and Routine having many
RoutineExercises, but I can't work out why.

Thanks in advance.
C004d67820a114e24ccf6f2ddaf5b236?d=identicon&s=25 Richard Livsey (Guest)
on 2006-01-21 01:48
(Received via mailing list)
Turns out to be a combination of edge rails and rails_engines.

There's a patch here which fixes it:


This topic is locked and can not be replied to.