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)