Railsのenumで元の数値を取得する

Bookmark this on Google Bookmarks
LINEで送る
Pocket

enumを以下のように設定したとする

enum sale_info: { plan_1: 1, plan_2: 2, plan_3: 3, plan_4: 4, plan_5: 5 }

以下で数値を得られる

my_model = Model.find(123)
my_model[:sale_info] # Returns the integer value

参考
How get integer value from a enum in Rails?

追記
Rails version 4.2.7.1で確認

– さらに追記 –
Rails5だと以下で数値を得られるらしい
Rails5だとmy_model[:sale_info]で文字列が返ってしまう。

my_model = Model.find(123)
my_model.sale_info_before_type_cast # Returns the integer value

参考
Rails5でenum定義したカラムの元の値を取得
http://qiita.com/yusuke-matsuda/items/df05c8165e2f084023b0