Ruby on rails 带加号或-号的枚举不适用于ActiveRecord

Ruby on rails 带加号或-号的枚举不适用于ActiveRecord,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有以下型号: class Visitor < ApplicationRecord enum timezone: { 'UTC': 'UTC', 'UTC-12': 'UTC-12', 'UTC-11': 'UTC-11', 'UTC-10': 'UTC-10', 'UTC-9': 'UTC-9', 'UTC-8': 'UTC-8', 'UTC-7': 'UTC-7', 'UTC-6': 'UTC-6', 'UTC

我有以下型号:

class Visitor < ApplicationRecord
  enum timezone: {
    'UTC': 'UTC',
    'UTC-12': 'UTC-12',
    'UTC-11': 'UTC-11',
    'UTC-10': 'UTC-10',
    'UTC-9': 'UTC-9',
    'UTC-8': 'UTC-8',
    'UTC-7': 'UTC-7',
    'UTC-6': 'UTC-6',
    'UTC-5': 'UTC-5',
    'UTC-4': 'UTC-4',
    'UTC-3': 'UTC-3',
    'UTC-2': 'UTC-2',
    'UTC-1': 'UTC-1',
    'UTC+0': 'UTC+0',
    'UTC+1': 'UTC+1',
    'UTC+2': 'UTC+2',
    'UTC+3': 'UTC+3',
    'UTC+4': 'UTC+4',
    'UTC+5': 'UTC+5',
    'UTC+6': 'UTC+6',
    'UTC+7': 'UTC+7',
    'UTC+8': 'UTC+8',
    'UTC+9': 'UTC+9',
    'UTC+10': 'UTC+10',
    'UTC+11': 'UTC+11',
    'UTC+12': 'UTC+12',
    'UTC+13': 'UTC+13',
    'UTC+14': 'UTC+14'
  }, _suffix: true
end
如果我发送了一个无效的,它将引发一个有意义的错误:

ArgumentError ('UTC-100' is not a valid timezone)
有人知道是否不能将枚举与-或+一起使用吗


谢谢。

从Rails文档开始:声明一个枚举属性,其中值映射到数据库中的整数

您正在尝试映射枚举时区中的字符串,应更改为:

类访问者<应用程序记录 枚举时区:{ “UTC”:100,与“UTC+0”重复 “UTC-12”:-12, “UTC-11”:-11, “UTC-10”:-10, “UTC-9”:-9, “UTC-8”:-8, “UTC-7”:-7, “UTC-6”:-6, “UTC-5”:-5, “UTC-4”:-4, “UTC-3”:-3, “UTC-2”:-2, “UTC-1”:-1, “UTC+0”:0, “UTC+1”:1, “UTC+2”:2, “UTC+3”:3, “UTC+4”:4, “UTC+5”:5, “UTC+6”:6, “UTC+7”:7, “UTC+8”:8, “UTC+9”:9, “UTC+10”:10, “UTC+11”:11, “UTC+12”:12, “UTC+13”:13, “UTC+14”:14 },_后缀:true 终止
我建议您取消UTC,改为UTC+0或相反,因为它们表示相同的时区。

直到UTC+14存在。谢谢这不是真正的问题。。。我可以将字符串映射到字符串,特别是如果我实际上是表列中的enum。问题与符号+和-。请向我们提供您的数据库架构。您是否遵循了与此主题类似的任何步骤:您可能可以查看hstore。
ArgumentError ('UTC-100' is not a valid timezone)