RailsでEnum元の数値を取得する
以下の設定の場合
class User < ActiveRecord::Base enum role: { admin: 1, viewer: 2, other: 3 } ...
Rails5の場合
user = User.create(role: 1) user.role_before_type_cast # => 1 # もしくは user.class.roles[user.role] # => 1
Rails4以前は
user = User.create(role: 1) user[:role] # => 1
Rails5で4以前のを試すと
user = User.create(role: 1) user[:role] # => admin
これはつらい…
まだRails4から5に移行していない場合は注意が必要そうです。