如何动态获取枚举的字符串值?

时间:2014-10-28 18:12:53

标签: ruby-on-rails activerecord ruby-on-rails-4 enums activemodel

我有Video模型,其中的aspect_ratio属性为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_pair迭代模型的属性时,aspect_ratio的值是一个整数。我需要迭代属性,如果属性是枚举,我得到字符串值,而不是它的整数值。

以下还返回其整数值:

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

还有另一种迭代方法可以确保我获得枚举的字符串值吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试最简单的方式:video.public_send(:aspect_ratio)