Доля значений декларации перечисления между моделями
Я применяю enum к следующему атрибуту: transparency
Тот же атрибут (с перечислением) используется в двух разных моделях: Category
и Post
Можно ли делиться значениями перечисления между моделями, чтобы избежать дублирования кода:
enum transparency: %w(anonymous private public)
Ответы
Ответ 1
Вы можете использовать concern.
module HasTransparency
extend ActiveSupport::Concern
included do
enum transparency: %w(anonymous private public)
end
end
Затем включите его в свои модели:
class Category < ActiveRecord::Base
include HasTransparency
....
end
Ответ 2
Альтернативой "правильному пути" использования проблемы или модуля вы можете просто ссылаться на другое перечисление класса. Он отлично работал у меня:
enum same_values_than_other: SomeOtherClass.my_awesome_enum