1. ホーム
  2. ruby-on-rails

[解決済み] Railsでenumから整数値を取得するには?

2022-08-18 10:04:40

質問

データベースのカラムに対応するenumをモデル内に持っています。

その enum のように見える。

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

整数値を取得するにはどうしたらよいですか?

試してみたところ

Model.sale_info.to_i

しかし、これは0しか返しません。

どのように解決するのですか?

enumの整数値は、enumが所属するクラスから取得することができます。

Model.sale_infos # Pluralized version of the enum attribute name

のようなハッシュが返ってきますね。

{ "plan_1" => 1, "plan_2" => 2 ... }

のインスタンスから、sale_info の値を使用することができます。 Model クラスのインスタンスから、整数値 にアクセスできます。 :

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