Ruby on rails 3 创建给定模块时创建所有子模块
我有一个Rails 3应用程序,模型之间有以下关系:Ruby on rails 3 创建给定模块时创建所有子模块,ruby-on-rails-3,activerecord,callback,Ruby On Rails 3,Activerecord,Callback,我有一个Rails 3应用程序,模型之间有以下关系: Course ---[ 1:n ]---> Module 当用户报名参加课程时我有以下几点: Enrollment ---[ 1:n ]---> ModuleStatus 每个注册也始终有一个用户和一个课程 问题:当为用户创建注册时,系统将继续为给定的课程拥有的每个模块创建一个模块状态,我该如何强制执行 我应该使用回调来强制执行此创建吗 如果是的话,什么样的回调适合这里?创建后是否会出现 谢谢 简短回答:是的,在创建后使用当然
Course ---[ 1:n ]---> Module
当用户报名参加课程时
我有以下几点:
Enrollment ---[ 1:n ]---> ModuleStatus
每个注册
也始终有一个用户和一个课程
问题:当为用户创建注册
时,系统将继续为给定的课程
拥有的每个模块创建一个模块状态
,我该如何强制执行
我应该使用回调来强制执行此创建吗
如果是的话,什么样的回调适合这里?创建后是否会出现
谢谢 简短回答:是的,在创建后使用
当然有意义。它可能看起来像这样(显然,您可以填写建模的细节)
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