我有一个用例,我希望有2列具有相同的枚举数组。下面是我试图实现的示例代码。最初使用以下代码获得错误,然后添加后缀广告前缀。
class Sample
enum status1: {initiated: 1, ringing: 2}, _suffix: true
enum status2: {initiated: 1, ringing: 2}, _prefix: :stat2
end
现在,当我尝试从rails控制台访问模型以使用下面的代码将值分配给status1或status2时,我收到错误
s = Sample.last
NoMethodError:未定义的方法`each_with_index'表示true:TrueClass
所以在这里我希望有多个列具有相同的枚举值,并且能够为它们赋值并保存。
答案 0 :(得分:1)
Rails 4.2不支持使用_prefix和_suffix。这是Rails 5引入的一项功能。您可以看到here对引入该功能的rails master分支的提交。
你要么必须实现enum的新rails 5版本,要么只需手动添加前缀或后缀以防止名称冲突。 Rails基于它声明的枚举值为模型生成方法,这就是为什么两个具有相同名称的枚举值不能具有相同名称的原因。