Rails 枚举符号与字符串

Ahm*_*eem 2 ruby enums ruby-on-rails ruby-on-rails-4

我刚刚开始开发一个新的 Rails 项目,我注意到以前的开发人员使用字符串而不是符号作为枚举的键。示例如下:

enum event_type: {
  'Tournament'    => 1,
  'Practice Game' => 2
}
Run Code Online (Sandbox Code Playgroud)

我只是好奇使用字符串而不是符号可能的优点/缺点。

And*_*eko 5

映射通过具有复数属性名称的类方法公开,该方法以 HashWithIndifferentAccess

因此,无论您使用字符串还是符号,以下两者都将起作用:

MyModel.event_types[:Tournament]
MyModel.event_types['Tournament']
Run Code Online (Sandbox Code Playgroud)