2

我有一个Video模型称为aspect_ratio属性,它是一个enum如何动态获取Enum的字符串值?

ASPECT_RATIOS = [:four_three, :sixteen_nine] 

enum aspect_ratio: ASPECT_RATIOS 

的属性存储为整数。

当我访问此属性,我得到的枚举符号

video.aspect_ratio # four_three 
video.aspect_ratio.class # String 

然而,当我遍历使用video.attributes.each_pairaspect_ratio的值是一个整数模型的属性的字符串表示。我需要以这样的方式遍历属性,如果属性是一个枚举,我得到字符串值,而不是它的整数值。

下也返回其整数值:

video.read_attribute(:aspect_ratio) 
video[:aspect_ratio] 

是否有另一种方式来重复,以确保我获得枚举的字符串值?

回答

1

你可以试试最简单的方法:video.public_send(:aspect_ratio)

+0

是这样应该是:ASPECT_RATIO而不是:aspect_ration? – 2014-10-28 21:49:33

+0

这只是错字;) – IS04 2014-10-29 06:51:12