【问题标题】:How Can I Get An Enum's String Value Dynamically?如何动态获取枚举的字符串值?
【发布时间】:2014-10-28 18:12:52
【问题描述】:

我有一个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]

是否有另一种迭代方式来确保我获得枚举的字符串值?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 这应该是 :aspect_ratio 而不是 :aspect_ration 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    相关资源
    最近更新 更多