我无法为我正在处理的应用程序建模数据。相关模型是Jobs,Team,Shift,&雇员。我把所有事情都正常工作,直到我不得不将司机和助手分成白天司机,日助手,自定义司机和&定制助手。
基本上,我需要一些关于关系及其设置的建议和指导,因为它已经开始让我已经设置的具有单表继承的多个表混淆。
基本上,我需要Job
有一个由Team
或DayShifts
组成的CustomShifts
,并且能够将Employees
分配给这些不同类型的Shifts
1}}。我使用RailsAdmin来管理管理员,但我想如果能够让模型关系正确,我可以解决这个问题。理想情况下,在Team
管理员编辑屏幕上,我可以选择Shift,然后为所选班次的司机和助手设置一个rails_admin多选框。因此,如果我选择DayShift
,我会获得Day Drivers
和Day Helpers
的多重选择。
我觉得我错过了一些东西,或者这是完全错误的,我没有承诺进行以下任何设置。我还需要知道如何设置团队以获得day_shift,night_shift或other_shift。建立模型关系的任何帮助都将非常赞赏。
class Employee < AR::Base
belongs_to :team
belongs_to :shift
end
class Driver < Employee
end
class Helper < Employee
end
class Job < AR::Base
belongs_to :team
has_many :employees, through: shifts
has_many :drivers, through: shifts
has_many :helpers, through: shifts
end
class Team < AR::Base
has_many :jobs
has_many :employees
has_many :drivers
has_many :helpers
has_one :day_shift
has_one :custom_shift
end
class Shift < AR::Base
belongs_to :team
has_many :employees
has_many :drivers
has_many :helpers
end
class DayShift < Shift
end
class CustomShift < Shift
end
以下是相关架构:
Employee
t.string "name"
t.string "type"
t.integer "team_id"
t.integer "shift_id"
Team
t.string "name"
t.string "type"
Job
t.integer "team_id"
Shift
t.string "type"
t.integer "team_id"