表示Rails中列举的代码列表的表?

时间:2009-06-01 16:40:01

标签: ruby-on-rails database

我看过类似的问题,但我仍然对Rails中的一个简单案例感到有些困惑。

假设我有一个名为Employee的模型类。员工的一个属性是他们的security_clearance,这是一个可以是NoneSomeFull的字符串。没有其他值有效。在其他应用程序中,我可能代表一个Employees表,它有一个SecurityClearances表的外键,它只有三行。 SecurityClearances表的列标题为code(例如SEC_CLEARANCE_NONESEC_CLEARANCE_SOME,...)和value(“无”,“有些”,“完整” “)。

我想如何在Rails中执行此操作?我想要has_one :security_clearance上的Employeebelongs_to :employee上的SecurityClearance吗?这似乎不太正确。

在任何地方输入None,Some和Full的字符串文字似乎不是最理想的,特别是因为要显示的值可能会更改(例如,Some代码的字符串可能会更改为而是low clearance


更新

既然我已经考虑了这个问题,那么我真的只想在员工身上找到belongs_to :security_clearance吗?那就行了,对吗?员工需要知道他们的安全许可级别是什么,但安全许可级别与特定员工没有关系。

2 个答案:

答案 0 :(得分:1)

看一下这个插件:http://github.com/mlightner/enumerations_mixin/tree/master

它允许您将此定义为has_enumerated :security_clearance,此外还可以缓存SecurityClearance模型等。

但是,如果没有插件,那么关系就是正确的。

答案 1 :(得分:1)