Rails 5 通过整数值获取枚举键

Rails 5 get enum key via integer value

我有一个具有以下枚举的模型:

class User < ApplicationRecord
    enum user_type: [:api_user, :web_user]
end

当它被保存到数据库中时,它会按预期使用整数值保存它。然后我有一个函数接受这样的枚举(在控制器中):

do_something_useful(type: User.user_types[:web_user], user: user)

def do_something_useful(options)
    some_enum_value = options[:type]
    user = options[:user]

    # Not a practical example.  Just an example to demonstrate the issue.

    # Should return Hello, User! You are a web_user type.
    # But returns, Hello, User! You are a 1 type.
    'Hello, #{user.name}! You are a #{some_enum_value} type.'
end

我遇到的问题是选项[:type] 传递的是整数值。我想通过整数获取 User.user_type 的键值。这可能吗?

再次感谢。

好吧,进行了更多搜索并找到了这个解决方案:

User.user_types.key(options[:type])

这将 return 密钥。

这是最简单的方法吗?或者其他更好的解决方案?