【发布时间】:2018-05-31 11:34:38
【问题描述】:
我创建了一个模型Tester 与整数列tester_type 并在模型中声明了枚举变量。
class Tester < ApplicationRecord
enum tester_type: { junior: 0, senior: 1, group: 2 }
end
尝试为该模型创建/初始化对象时出现以下错误:
ArgumentError:您试图在模型“Tester”上定义一个名为“tester_type”的枚举,但这会生成一个类方法“group”,该方法已由 Active Record 定义。
所以,我尝试将tester_type 更改为type_of_tester,但它会引发同样的错误:
ArgumentError:您试图在模型“Tester”上定义一个名为“type_of_tester”的枚举,但这会生成一个类方法“group”,该方法已由 Active Record 定义。
我已搜索解决方案,发现此错误是ActiveRecord::Enum 类中的常量ENUM_CONFLICT_MESSAGE,但无法找到此问题的原因。
请帮助我。
谢谢。
【问题讨论】:
-
更改emum的名字,不要使用testers_type这已经被rails使用了。
-
我尝试将其更改为
type_of_tester,但它会引发同样的错误。 -
你能不能也粘贴那个错误。
-
已编辑问题
标签: ruby-on-rails activerecord enums ruby-on-rails-5