【问题标题】:How to get the id value from a Rails model enum?如何从 Rails 模型枚举中获取 id 值?
【发布时间】:2016-01-24 22:45:11
【问题描述】:

试图了解如何使用枚举来帮助管理不同的用户状态级别。

class User < ActiveRecord::Base
  enum user_status: [:active, :pending, :trial]
end

所以现在 active 是 0,pending 是 1,trial 是 2。

如果我这样做:

user.active? 

这很好用,但目前当我设置值时,我仍在这样做:

user.user_status = 0

我希望我可以这样做:

user.user_status = User.UserStatus.trial

关键是我不想记住每个枚举值是什么索引。

另外,如果我更改顺序或添加更多 user_status 值,索引将会更改,并且我想防止错误导致我对代码库中的值进行硬编码。

有没有更好的方法来处理枚举索引值?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    你可以轻松找到答案simply reading the documentation

    user.trial!
    

    将设置状态并更新记录。有关更多变体,您可以参考文档。

    【讨论】:

      【解决方案2】:

      它以以下方式工作:

      user.trial!
      

      more detail

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-27
        • 2018-01-04
        • 2014-10-23
        • 1970-01-01
        • 2017-01-14
        • 2020-08-04
        • 2010-12-05
        • 1970-01-01
        相关资源
        最近更新 更多