ruby-on-rails - 如何动态获取枚举的字符串值?

标签 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]

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

最佳答案

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

关于ruby-on-rails - 如何动态获取枚举的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615525/

相关文章:

django - 为什么 Django ORM 在简单的外键关系上失败?

ruby-on-rails - Rails redirect_to Ruby 2.2/Rails 4.2 的新行为?

ruby-on-rails - 如何给图片添加文字?

ruby-on-rails - Rails 与 JQueryMobile - 使用 send_data 进行双重渲染

ruby-on-rails - 删除非法字符的助手?

mysql - Rails 5在sql表中找不到日期字段

ruby-on-rails - 如何使用 Pundit 处理分页?

ruby-on-rails - 在PaperTrail中,如何记录每个版本的评论?

mysql - ActiveRecord 迁移失败并显示 "version is defined by Active Record"

php - 使用 codeigniter 的事件记录在 SQL 语句末尾放置 where 子句