【发布时间】:2010-11-15 22:43:12
【问题描述】:
抱歉,如果问题有点不准确,但我将在下面描述我的问题。
我在 Rails 项目中设置一些模型,我注意到我多次遇到的一件事是处理满足以下条件的属性:
- 可以将它们设置为一组小的预定义值中的一个
- 这些值需要同时具有名称和标识符(无论是数字 id、代码等)
- 这些值只会随着大量代码更改而改变。
例如,我的一个模型应该有一个status 字段,可以设置为以下之一:正在定义、已执行或已完成。我需要在界面中显示这些特定的单词,但我不想将字符串存储在数据库中,以防将来需要更改它们(或国际化,或其他)。
显而易见的选择是为这些模型中的每一个定义模型,但这似乎会在维护模型、确保我为每个模型编写环境之间的迁移等方面带来大量开销,这看起来像很多开销。
另一种选择是将其存储为整数,然后创建一个“枚举”类型的类来存储这些值的翻译 - 这可能会很好,但我担心我会丢失关联和其他我从 ActiveRecord 模型中获得的方便的东西。
对处理这种情况的最佳方法有什么建议吗?
【问题讨论】:
标签: ruby-on-rails