Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 表示Rails中代码的枚举列表的表?_Ruby On Rails_Database - Fatal编程技术网

Ruby on 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,…)

我已经研究过类似的问题,但对于Rails中的一个简单案例,我仍然有点困惑

假设我有一个名为
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插件:

您的更新是正确的。你不需要在“清除级别”课上有很多。不过,如果你最终不得不报告所有获得特定许可的人,那么你迟早会需要这种关系。