我有一个用例,我想有2列相同的enum数组。下面是我试图实现的示例代码。最初得到的错误代码如下,然后添加后缀ad前缀。
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
所以这里我想有多个列具有相同的枚举值并且能够分配值给它们并保存
Rails 4.2不支持使用_prefix和_suffix。这是Rails 5引入的一个特性。您可以在这里看到提交到引入该特性的rails主分支。
你要么必须实现新的rails 5版本的enum,要么只是手动添加前缀或后缀以防止名称冲突。Rails根据它声明的枚举值为模型生成方法,这就是为什么两个同名的枚举值不能有相同的名称。