I have the following 3 models (2 models joined by an intermediate):
-
class Exercise < ActiveRecord::Base
-
has_many :routines, :class_name=>‘RoutineExercise’
-
end
-
class Routine < ActiveRecord::Base
-
has_many :exercises,
-
:class_name=>'RoutineExercise',
-
:order=>'position'
-
end
-
class RoutineExercise < ActiveRecord::Base
-
set_table_name “exercises_routines”
-
set_primary_key ‘join_id’
-
belongs_to :routine
-
belongs_to :exercise
-
acts_as_list :scope => :routine_id
-
end
From this I’m getting ‘stack level too deep’ errors:
#{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations.rb:877:in
create_has_many_reflection' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations.rb:346:in
has_many’
#{RAILS_ROOT}/app/models/routine.rb:2
#{RAILS_ROOT}/app/models/routine_exercise.rb:5
#{RAILS_ROOT}/app/models/routine.rb:2
… snip …
#{RAILS_ROOT}/app/models/routine_exercise.rb:5
#{RAILS_ROOT}/app/models/routine.rb:2
#{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.