Ruby on rails 表示Rails中代码的枚举列表的表?
我已经研究过类似的问题,但对于Rails中的一个简单案例,我仍然有点困惑 假设我有一个名为Ruby on rails 表示Rails中代码的枚举列表的表?,ruby-on-rails,database,Ruby On Rails,Database,我已经研究过类似的问题,但对于Rails中的一个简单案例,我仍然有点困惑 假设我有一个名为Employee的模型类。员工的一个属性是其安全许可,这是一个字符串,可以是无、部分、或完整。没有其他有效值。在其他应用程序中,我可能会将其表示为一个Employees表,该表有一个指向securitylearnations表的外键,该表正好有三行。securityclearancess表中有标题为code(例如SEC\u CLEARANCE\u NONE,SEC\u CLEARANCE\u SOME,…)
Employee
的模型类。员工的一个属性是其安全许可
,这是一个字符串,可以是无
、部分
、或完整
。没有其他有效值。在其他应用程序中,我可能会将其表示为一个Employees
表,该表有一个指向securitylearnations
表的外键,该表正好有三行。securityclearancess
表中有标题为code
(例如SEC\u CLEARANCE\u NONE
,SEC\u CLEARANCE\u SOME
,…)和value
(“无”、“部分”、“全部”)的列
我想如何在Rails中实现这一点?我是否希望在员工
上有一个:安全检查
并且属于安全检查
上的员工
?这似乎不太正确
到处键入None、Some和Full的字符串文字似乎不是最佳选择,特别是因为要显示的值可能会更改(例如,Some
代码的字符串可能会改为低清除率
)
更新:
现在我想了很多,我不是真的想要一个
属于员工的安全检查吗?那就行了,对吧?员工需要知道他们的安全许可级别,但安全许可级别与特定员工无关。看看这个插件:
除了缓存SecurityClearance模型等,它还允许您定义如下内容:安全性清除
不过,如果没有该插件,您对关系的看法是正确的。还可以查看GiraffeSoft的Enum Fields插件:
您的更新是正确的。你不需要在“清除级别”课上有很多。不过,如果你最终不得不报告所有获得特定许可的人,那么你迟早会需要这种关系。