创建所有的孩子创建一个给定的模块时,

我与模型之间的关系如下一个Rails 3应用程序:

Course ---[ 1:n ]---> Module

而当用户参与到Course我有这样的:

Enrollment ---[ 1:n ]---> ModuleStatus

每个Enrollment也总是有一个用户和课程

问题:我怎么能强制执行,当一个Enrollment为用户创建,系统继续并创建一个ModuleStatus每个给定的模块Course了?

我应该使用一个回调来执行这个创造?

如果有的话,回调适合这里? 难道是after_create

谢谢!

--------------解决方案-------------

简短的回答:是的,使用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

分类:Ruby on Rails的3 时间:2015-03-15 人气:3
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.501 (s). 10 q(s)