自分用メモです。
でも、きっと同じことにぶち当たる人はいるはずw
例えば・・・・
class User < ActiveRecord::Base
enum role: { admin: 1, manage: 2, other: 3 }
...
こんな感じで定義されていたとして、
user = User.create(role: 1)
そのオブジェクトを作り、role
に割り当てた1
という値を取りたい場合、
Rails4までは、
rails4
user[:role]
=> 1
だったのが、Rails5だと・・・、
rails5
user[:role]
=> 'admin'
な・・・なんだと・・・!?
Rails5でenumの元の値を取得する場合は、
rails5
user.role_before_type_cast
=> 1
または、
user.class.roles[user.role]
または、
User.roles[user.role]
とするらしい。(コメント頂きました!!)
うーーん、面倒だな・・。他のも方法ありそうなんだけどなぁ・・・
情報求む!!