如何从Rails模型枚举中获取id值?

时间:2016-01-24 22:45:11

标签: ruby-on-rails

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

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

所以现在活动为0,挂起为1,试验为2。

所以,如果我这样做:

user.active? 

这样可以正常工作,但是当我设置值时,我仍然这样做:

user.user_status = 0

我希望我可以做类似的事情:

user.user_status = User.UserStatus.trial

重点是我不想记住每个枚举值的索引。

此外,如果我更改顺序或添加更多user_status值,索引将会更改,我想防止我在代码库中硬编码值的错误。

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

2 个答案:

答案 0 :(得分:3)

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

user.trial!

将设置状态并更新记录。有关更多变体,请参阅文档。

答案 1 :(得分:0)

它以下一种方式运作:

user.trial!

more detail