我正在尝试在我的模型上创建一个枚举,我希望其中一个状态为“新”
e.g。
enum status: { stale: 0, new: 1, converted: 2 }
似乎rails拒绝了这个错误。
You tried to define an enum named "status" on the model "Lead", but this will generate a class method "new", which is already defined by Active Record.
我理解为什么会这样,但我想知道是否有办法解决这个问题?
答案 0 :(得分:15)
错误明确指出您不能使用new
密钥进行枚举,因为它会与现有的ActiveRecord
方法冲突。没有办法解决这个问题。
这个问题并不新鲜,之前已经讨论过了。
我建议你阅读
<强> enum: Option not to generate "dangerous" class methods 强>
根据Godfrey Chan
,Rails的协作者:
在这种情况下,如果你想使用枚举,你可能会更好 将您的标签重命名为其他内容。这不是枚举所特有的 - a 许多Active Record功能为您和通常生成方法 没有办法选择退出这些生成的方法。
现在暂时关闭这个......
答案 1 :(得分:0)
我通过将 config / environments / production.rb 作为默认设置解决了我的问题,所有内容都恢复正常而没有错误