如何从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。
您可以从枚举所在的类中获取枚举的整数值:
 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,上面的方法现在返回string值:(
我现在可以看到的最好的方法是:
 my_model.sale_info_before_type_cast 
沙德韦尔的回答也继续为轨道5工作。
Rails <5
 另一种方法是使用read_attribute() : 
 model = Model.find(123) model.read_attribute('sale_info') 
Rails> = 5
 你可以使用read_attribute_before_type_cast 
 model.read_attribute_before_type_cast(:sale_info) => 1