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