4

我有一个包含工单的 Rails 应用程序。我将从另一个系统加载工单。该系统对父子工单使用单个表。

我在工作订单表中添加了一个名为 parent_id 的字段

这是 Workorder 模型中的正确编码吗?

 class ParentWorkorder
   belongs_to :parent, class_name => "Workorder"
   belongs_to :child, class_name =>  "Workorder", :foreign_key => "parent_id"
 end

或者您会建议不要这样做 - 而是创建一个子工单表?我认为这可能会使与其他系统的集成变得更加困难。

任何指导将不胜感激!

4

2 回答 2

4

您也可以使用 Rails 在单个表中执行此操作,并且为此使用单个模型。我不明白为什么您需要ParentWorkorder像您所做的那样使用额外的模型使您的应用程序复杂化。我会改为执行以下操作:

class Workorder < ActiveRecord::Base
  belongs_to :parent, :class_name => "Workorder", :foreign_key => "parent_id"
  has_many :children, :class_name => "Workorder", :foreign_key => "parent_id"
end

我很确定这将为您提供所需的功能。

于 2013-01-17T01:56:40.853 回答
2

我会将孩子作为 has_one 或 has_many(如果父母可以拥有多个)。但是,是的,这很好用。

您可能希望养成尽可能使用符号而不是字符串的习惯。

于 2013-01-17T01:31:09.043 回答