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

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

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