Извините, если вопрос немного неточен, но я опишу свою проблему ниже.
Я создаю некоторые модели в проекте Rails, и одна вещь, которую я заметил, что я работаю более чем несколько раз, имеет дело с атрибутами, которые отвечают следующим критериям:
- Они могут быть установлены в один из небольшого предопределенного набора значений
- Эти значения должны иметь как имя, так и идентификатор (будь то числовой код, код, что угодно)
- Значения будут меняться только в результате большого изменения кода.
Например, одна из моих моделей должна иметь поле status
, которое может быть установлено в одно из: Определение, Выполнение или Завершено. Мне нужно показать эти конкретные слова в интерфейсе, но я не хочу хранить строки в БД, если мне нужно изменить их в будущем (или интернационализировать или что-то еще.)
Очевидным вариантом является определение моделей для каждой из этих моделей, но это, как представляется, создает значительные накладные расходы на поддержание моделей, гарантируя, что я пишу миграции между средами и т.д. для каждого из них, что похоже на много накладных расходов.
Другой вариант заключается в том, чтобы сохранить его как целое число и поднять класс типа "перечисление", который сохраняет перевод этих значений - это, вероятно, будет работать нормально, но я обеспокоен тем, что потеряю ассоциации и другие удобный материал, который я получаю от моделей ActiveRecord.
Любые советы по наилучшему способу справиться с этой ситуацией?