我有一个超类锻炼:
class Workout < ActiveRecord::Base
SUBCLASSES = [WeeklyWorkout, DailyWorkout, OneTimeWorkout]
(...)
end
我需要子类列表。每个子类都是这样的:
class WeeklyWorkout < Workout
(...)
end
所以,当我加载锻炼课程时,一切都很好。但是当我尝试加载任何子类(没有先加载 Workout 类)时,循环依赖存在问题。例如:
irb(main):062:0> 每周锻炼
RuntimeError:自动加载常量 WeeklyWorkout 时检测到循环依赖
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:460:in `load_missing_constant'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:494:in `load_missing_constant'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
来自 /home/pablo/rails/tobefit/app/models/workout.rb:2:in `'
来自 /home/pablo/rails/tobefit/app/models/workout.rb:1:in `'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `load'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `block in load_file'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:615:in `new_constants_in'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:422:in `load_file'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:323:in `require_or_load'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
来自/home/pablo/rails/tobefit/app/models/workouts/weekly_workout.rb:1:in `'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `load'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `block in load_file'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:615:in `new_constants_in'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:422:in `load_file'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:323:in `require_or_load'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant'
来自 /var/lib/gems/1.9.1/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
来自 (irb):62
来自 /var/lib/gems/1.9.1/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
来自 /var/lib/gems/1.9.1/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
来自 /var/lib/gems/1.9.1/gems/railties-4.0.0/lib/rails/commands.rb:64:in `'
从 bin/rails:4:in `require'
从 bin/rails:4:in `'
我知道为什么会出现问题。但我不知道如何解决它。有谁知道如何设计这个来解决这个问题?