Rails の列挙型から整数値を取得するにはどうすればよいでしょうか? 質問する

Rails の列挙型から整数値を取得するにはどうすればよいでしょうか? 質問する

モデル内にデータベースの列に対応する列挙型があります。

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 のみを返します。

ベストアンサー1

列挙型の整数値は、列挙型が存在するクラスから取得できます。

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

おすすめ記事