Rails has_many建模问题

时间:2016-03-09 00:42:27

标签: ruby-on-rails activerecord has-many

我有一个名为时间表的模型,其has_many 员工对象。每个计划对象运行2周,员工将在2周内分配到“轮班”。需要注意的是,每个计划都有自己的一组员工对象。

class Schedule
  has_many :employees
  ...
end

class Employee
  belongs_to :schedule
  ...
end

问题在于有“主”员工名单,从中选择实际在特定日程表中使用的员工。请注意,这些主要员工不属于计划

“主”员工的属性与员工的属性基本相同。但是,一旦将它们分配到计划,主员工的属性可能会与分配的员工的属性不同。

那怎么办?

如下所示的多对多不起作用,因为员工的属性可能会在分配给特定的时间表后发生变化。

class ScheduleEmployee
  belongs_to :employee
  belongs_to :schedule
  ...
end

默认的想法是拥有 MasterEmployee 模型(带有自己的表),并且在计划创建时,这用于为新创建的计划:

class MasterEmployee
  ...
end

这种方法的问题在于它不是很干,因为 MasterEmployee 的属性与员工基本相同。

另一个想法是只拥有员工模型,但将“主”员工视为nil Schedule 父项。这对我来说似乎很奇怪,因为感觉我正在“重载”这个模型,特别是我可能想要添加仅对 MasterEmployee Employee <特有的属性/强>

STI是下一个想法,但这实际上与以前非常相似,因为你有一些员工没有父母。

还有其他想法吗?

0 个答案:

没有答案