ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

Railsのenumで値(Value)を取得する

f:id:jun9632:20170809110202p:plain

下記のような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

関連記事

marketing-web.hatenablog.com

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング