Railsのenumで値(Value)を取得する
下記のようなenumがあったときに、
class Item < ActiveRecord::Base enum status: { draft: 1, published: 2, test: 3 }
Imteオブジェクトから Valueの値(1 とか 2 とか)を取得したい時の方法です。
hash的な考え方
まず1つ目が、
Item.statuses[item.status]
です。
hashみたいにkeyを指定して、valueを取得します。
その際に、statuses と複数系になることにご注意ください。
xxxx_before_type_castを使う
なにはともあれ、下記で取得できる。
Item.status_before_type_cast
こちらの方が、スマートな雰囲気で取得できますね。
ActiveRecord::AttributeMethods::BeforeTypeCast
関連記事
Ruby on Rails 5アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2017/04/14
- メディア: 大型本
- この商品を含むブログを見る