我有一个Rails 3应用程序,模型之间有以下关系:
Course ---[ 1:n ]---> Module
当用户加入Course
我有这个:
Enrollment ---[ 1:n ]---> ModuleStatus
每个Enrollment
也总是有用户和课程
问题:如何在为用户创建Enrollment
时强制执行,系统继续为给定的每个模块创建ModuleStatus
Course
有?
我应该使用回调来强制执行此创建吗?
如果是这样,这里有什么回调?会是after_create
吗?
谢谢!
答案 0 :(得分:1)
简短回答:是的,使用after_create
肯定是有道理的。它可能看起来像这样(显然你可以填写建模的细节)。
class Enrollment
belongs_to :user
belongs_to :course
has_many :module_statuses
after_create :generate_module_statuses
def generate_module_statuses
self.course.modules.each do |module|
self.module_statuses.create(:the_correct_attributes)
end
end
end