gpt4 book ai didi

ruby-on-rails - Rails - 使用 ActiveRecord::Enum 时出现 ArgumentError

转载 作者:行者123 更新时间:2023-12-04 07:30:02 31 4
gpt4 key购买 nike

我创建了一个模型 Tester带整数列 tester_type并在模型中声明枚举变量。

class Tester < ApplicationRecord
enum tester_type: { junior: 0, senior: 1, group: 2 }
end

尝试为该模型创建/初始化对象时出现以下错误:

ArgumentError: You tried to define an enum named "tester_type" on the model "Tester", but this will generate a class method "group", which is already defined by Active Record.



所以,我尝试改变 tester_typetype_of_tester但它抛出同样的错误:

ArgumentError: You tried to define an enum named "type_of_tester" on the model "Tester", but this will generate a class method "group", which is already defined by Active Record.



我已经搜索了解决方案,我发现这个错误是一个常数 ENUM_CONFLICT_MESSAGEActiveRecord::Enum但是,无法找到此问题的原因。

请帮我。

谢谢。

最佳答案

在这种情况下,如果您想使用枚举,最好将标签重命名为其他名称。这不是枚举所独有的——许多 Active Record 特性为你生成方法,通常没有办法选择退出这些生成的方法。

然后改 groupanother_name
或者你也应该遵循这个

enum :kind, [:junior, :senior, :group], prefix: :kind
band.kind_group?

关于ruby-on-rails - Rails - 使用 ActiveRecord::Enum 时出现 ArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47863151/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com