Я просматривал похожие вопросы, но все еще немного озадачен тем, что кажется простым примером в Rails.
Допустим, у меня есть класс модели с именем Employee
. Одним из атрибутов сотрудника является его security_clearance
, то есть строка, которая может быть None
, Some
или Full
. Другие значения не действительны. В других приложениях я, вероятно, представляю эту таблицу Employees
, которая имеет внешний ключ к таблице SecurityClearances
, которая содержит ровно три строки. Таблица SecurityClearances
имеет столбцы, озаглавленные code
(например, SEC_CLEARANCE_NONE
, SEC_CLEARANCE_SOME
, ...) и value
("Нет", "Некоторые", "Полный").
Как я хочу сделать это в Rails? Хочу ли я has_one :security_clearance
на Employee
и belongs_to :employee
на SecurityClearance
? Это не совсем правильно.
Кажется неоптимальным везде печатать строковые литералы None, Some и Full, тем более что отображаемые значения могут измениться (например, возможно, строка для кода Some
изменится на low clearance
вместо).
<Ч />
Обновление:
Теперь, когда я еще об этом подумаю, разве я не хочу просто belongs_to :security_clearance
на Сотрудника? Это бы сработало, верно? Сотрудники должны знать, каковы их уровни допуска, но уровни допуска не привязаны к конкретному сотруднику.