如何在我的rails应用程序中实现枚举?

时间:2015-04-22 06:30:19

标签: ruby-on-rails activerecord

Rails版本:4.2.0
操作系统:Windows 7(64位)

您好,例如,假设我有一个带有帖子模型的rails应用。

如果我希望帖子模型有权限列,可以使用多个值中的一个 [公共,私有,不公开]

我实现这个的方法是在 posts 模型中添加一个整数列,但是检查这个值会很快变得混乱,因为我必须记住哪个值对应于哪个权限。< / p>

我怎么能实现枚举,所以我可以做像

这样的检查
if post.visibility == POST_PUBLIC or post.visibility == POST_PRIVATE

1 个答案:

答案 0 :(得分:1)

从Rails 4.1开始,您可以在ActiveRecord模型中拥有enum个属性。例如:

class Post < ActiveRecord::Base
  enum visibility: [:public, :private, :unlisted]
  ..
end

http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html