【问题标题】:Creating all children when a given module is created创建给定模块时创建所有子模块
【发布时间】:2011-11-09 18:19:34
【问题描述】:

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

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

当用户注册到 Course 时,我有这个:

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

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

问题:我如何强制在为用户创建Enrollment 时,系统继续为给定Course 具有的每个模块创建ModuleStatus ?

我应该使用回调来强制执行此创建吗?

如果是这样,这里适合什么回调?会是after_create吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails-3 activerecord callback


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 2021-06-26
      • 1970-01-01
      • 2013-01-18
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多