답변:
열거 형이있는 클래스에서 열거 형의 정수 값을 가져올 수 있습니다.
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
Rails 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