Rails 上的 Ruby:Child Class 在创建 child class 时给出 Parent Class 值

Ruby on Rails: Child Class Gives Parent Class values when child class is created

我基本上是在寻找相反的东西:

Ruby on Rails: Building a child with default values when its parent is created

但我无法在堆栈溢出或文档中找到任何内容来帮助我解决这个问题。

  class GeneralError < Details
    #ASSOCIATIONS
    belongs_to :type
    belongs_to :error_log
    has_one :exception

    after_create :create_error_log

    def create_error_log
      self.error_log = ErrorLog.new(store_proc: "Columbia::GeneralError.log",  type_id: 1, summary: "A general error was logged at: '#{Time.now}")
    save
    end
end

所以general_errorsbelongs_toerror_log。 ErrorLog 在我的数据库中也是 GeneralErrors header table。

截至目前,使用上面列出的代码,我已经能够在每次创建 GeneralError 时为 ErrorLog 提供默认值。但是,这些值是硬编码的,根本不是动态的。完成我的任务最好、最枯燥的方法是什么?

试试这个:

after_create :create_error_log

    def create_error_log
      ErrorLog.create(store_proc: "Columbia::GeneralError.log",  type_id: 1, summary: "A general error was logged at: '#{Time.now}")
    end

几天前我发现了这个问题的答案,但忘了总结一下。

我是在想这个错误的整个架构。在与我办公室周围的高级开发人员交谈后,我们得出的结论是,在大多数标准情况下,您需要先创建 header table,然后再创建 child。特别是以后如果您需要更新或销毁某些东西。我不应该尝试从细节创建 header,而是从 header 创建细节。