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