回答:
列挙型が存在するクラスから、列挙型の整数値を取得できます。
Model.sale_infos # Pluralized version of the enum attribute name
それは次のようなハッシュを返します:
{ "plan_1" => 1, "plan_2" => 2 ... }
次に、Model
クラスのインスタンスのsale_info値を使用して、そのインスタンスの整数値にアクセスできます。
my_model = Model.find(123)
Model.sale_infos[my_model.sale_info] # Returns the integer value
あなたはそのような整数を得ることができます:
my_model = Model.find(123)
my_model[:sale_info] # Returns the integer value
レール5の更新
rails 5の場合、上記のメソッドは文字列値:(
私が今見ることができる最良の方法は:
my_model.sale_info_before_type_cast
Shadwellの答えは、レール5でも引き続き機能します。
別の方法は使用することread_attribute()
です:
model = Model.find(123)
model.read_attribute('sale_info')
使用できます read_attribute_before_type_cast
model.read_attribute_before_type_cast(:sale_info)
=> 1
read_attribute_before_type_cast
。
私の短い答えはModel.sale_infos[:plan_2]
、あなたが価値を得たい場合のためですplan_2
Model.sale_info.value.to_i
んか?例Model.sale_info.plan_1.to_i