Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 创建给定模块时创建所有子模块_Ruby On Rails 3_Activerecord_Callback - Fatal编程技术网

Ruby on 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 每个注册也始终有一个用户和一个课程 问题:当为用户创建注册时,系统将继续为给定的课程拥有的每个模块创建一个模块状态,我该如何强制执行 我应该使用回调来强制执行此创建吗 如果是的话,什么样的回调适合这里?创建后是否会出现 谢谢 简短回答:是的,在创建后使用当然

我有一个Rails 3应用程序,模型之间有以下关系:

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