我一直在关注RailsCast 197来尝试这个嵌套模型/表单,并且已经破解了这个代码超过 2 小时,但无济于事。我在看什么?
我有以下型号:
class Workout < ActiveRecord::Base
belongs_to :user
has_many :performed_exercises, :dependent => :destroy
accepts_nested_attributes_for :performed_exercises
end
class PerformedExercise < ActiveRecord::Base
belongs_to :workout
belongs_to :exercise
has_many :performed_sets, :dependent => :destroy
accepts_nested_attributes_for :performed_sets
end
class PerformedSet < ActiveRecord::Base
belongs_to :performed_exercise
end
在我的 WorkoutsController 中,我有以下内容:
def new
# We only need to build one of each since they will be added dynamically
@workout = Workout.new
@workout.performed_exercises.build
@workout.performed_exercises.performed_sets.build
end
当我在浏览器中运行测试并调用控制器时,出现以下错误:
undefined method `performed_sets' for #<Class:0x7f6ef6fa6560>
提前感谢您的帮助 - 我的 RoR 贵族不再让我感到惊讶!
编辑:fflyer05:我尝试使用与 RailsCast 相同的代码迭代集合,并尝试在 perform_exercises[0] 上构建 perform_sets - 但它不起作用。做任何其他事情,我得到一个未初始化的常量 PerformedExercise::PerformedSet 错误