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。
ErrorLog 有一个名为 summary 的列,我想在其中传递一个
所发生错误的简短描述。
GeneralErrors 我有一个名为 description 的列,我想在其中传递对发生的事情的详细描述。最终我希望能够调用 GeneralError.new() 并传入 summary 和 description.
截至目前,使用上面列出的代码,我已经能够在每次创建 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 创建细节。
我基本上是在寻找相反的东西:
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。
ErrorLog 有一个名为 summary 的列,我想在其中传递一个 所发生错误的简短描述。
GeneralErrors 我有一个名为 description 的列,我想在其中传递对发生的事情的详细描述。最终我希望能够调用 GeneralError.new() 并传入 summary 和 description.
截至目前,使用上面列出的代码,我已经能够在每次创建 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 创建细节。