我的情况是,作业有一个与之相关的训练课程
class Assignment < ActiveRecord::Base
has_one :trainingsession
end
class TrainingSession < ActiveRecord::Base
belongs_to :assignment
has_many :drills
end
当我尝试使用has_one关系构建对象时,我一直收到uninitialized constant
错误
我正在使用以下内容在我的控制器中构建训练课程
@activetrainingsession = @assignment.build_trainingsession
那条线随着uninitialized constant
看起来应该是直截了当的东西!!
答案 0 :(得分:1)
按照惯例,Rails使用camelize和underscore在camel case和underscored表示之间切换。这意味着,在您的情况下,TrainingSession
将被正确引用为training_session
(而不是trainingsession
)。
你需要:
@activetrainingsession = @assignment.build_training_session
但是,要一直遵循上述惯例,可能会更好:
@active_training_session = @assignment.build_training_session