Что мне помогло, так это преобразование его из символов в целые числа
TYPE_MAP = { type_one: 1, type_two:2, another_type:3 }
def type
TYPE_MAP.key(read_attribute(:type))
end
def type=(s)
write_attribute(:type, TYPE_MAP[s])
end
Но для контроллера вы должны снова отобразить его так:
def create
@cupon_type = CuponType.new(params[:cupon_type])
@cupon_type.type = params[:cupon_type][:type].to_sym
Обратите внимание на .to_sym , который переопределяет первое создание объекта (в моем случае это были купоны).
Теперь вы можете использовать его так:
c.type == :type_one
c.type = :type_two