【发布时间】:2017-03-02 08:06:35
【问题描述】:
随着互联网上提到的大多数 JAVA 枚举,到处都提到枚举应该全部大写(例如:ACTIVE)。
喜欢这里:Coding Conventions - Naming Enums
但是对于 Rails,在所有示例和文档中,它们都使用小写的枚举值(例如:'active'),例如:http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html
这是有道理的,因为 rails 还通过这些枚举的名称提供实例方法(例如:obj.active?)。这是 Rails 中的枚举被用作小写字母的唯一原因,还是还有更多? 当我们使用枚举作为小写时,我们也不同于约定,应该是这样吗?还是我们也应该在 Rails 中使用大写枚举?
例如,我的模型中有一个 status 枚举,按照惯例,它可以是 active、draft 或 inactive ,应该是:
enum status: {active: 1, draft: 2, inactive: 3}
或:
enum status: {ACTIVE: 1, DRAFT: 2, INACTIVE: 3}
哪一个?为什么?
【问题讨论】:
-
你能举几个例子吗?
-
虽然我还没有使用大写字母,但我之前已经创建了大写的枚举,例如
Active和创建的方法,例如obj.Active?。 -
这里,我只是添加了示例。另外,是的 obj.Active?会起作用,obj.ACTIVE 也会起作用吗?和 obj.active?只是想知道什么是约定。而且RAILS也是这样吗,如果和JAVA不同,为什么不遵循一般的编码约定。
-
@SambhavSharma:您所说的“通用编码约定”是什么? :)
-
一般,正如我所读过的,大多数语言都有将枚举保持为全部大写(java、c、c++)的约定。不过,我猜 JavaScript 会将其首字母大写,其余字母小写。也就是说,ACTIVE -> java, c, c++ etc. Active -> JavaScript, C# etc.
标签: ruby-on-rails ruby enums