枚举选项"新"不工作

时间:2014-04-08 14:41:58

标签: ruby-on-rails-4 enums

我正在尝试在我的模型上创建一个枚举,我希望其中一个状态为“新”

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.

我理解为什么会这样,但我想知道是否有办法解决这个问题?

2 个答案:

答案 0 :(得分:15)

错误明确指出您不能使用new密钥进行枚举,因为它会与现有的ActiveRecord方法冲突。没有办法解决这个问题。

这个问题并不新鲜,之前已经讨论过了。

我建议你阅读

<强> enum: Option not to generate "dangerous" class methods

根据Godfrey Chan,Rails的协作者:

  

在这种情况下,如果你想使用枚举,你可能会更好   将您的标签重命名为其他内容。这不是枚举所特有的 - a   许多Active Record功能为您和通常生成方法   没有办法选择退出这些生成的方法。

     

现在暂时关闭这个......

答案 1 :(得分:0)

我通过将 config / environments / production.rb 作为默认设置解决了我的问题,所有内容都恢复正常而没有错误