ruby-on-rails - 如何提取 Rails 枚举的字段并获取整数数组?
问题描述
我正在使用 Rails 5.2。
我想提取一个枚举字段并获取一个整数数组。
class Foo < ApplicationRecord
enum bar: { val1: 1, val2: 2 }
end
Foo.pluck(:bar) #=> ['val1', 'val2']
Foo.pluck('foos.bar') #=> ['val1', 'val2']
Foo.pluck(:bar_before_type_cast) #=> DB error!
我可以这样写Foo.pluck(:bar).map {|bar| Foo.bars[bar]}
,但我想写得更短一些。
如何做到这一点?
解决方案
您可以使用别名:
Foo.pluck('bar AS f')
它将返回一个整数数组。
它基于文档中的以下内容工作:
Pluck 返回一个属性值数组,类型转换为匹配采摘的列名,如果它们可以推导出来的话。
由于您返回的值是无法推断的,因此将返回其“数据库值”。
推荐阅读
- azure-devops - Azure DevOps、YAML 发布管道?
- css - 使用revealjs更改Rmarkdown演示文稿中的字体大小
- python - 使用 Pandas 计算跨 30 分钟时间箱的列中的字符串值
- jboss - MyEclipse 不接受 JDK 来创建运行时
- ios - 前向声明和参数化类
- apache-spark - 对非工作日(周末和节假日)未生成的缺失数据进行 Hive 查询操作
- nginx - supervisor下的nginx无法打开conf文件
- javascript - 即使没有要显示的错误,jQuery Validation 也会为错误放置 span 元素
- algorithm - 对完全降序的数组进行排序时,快速排序效率低下是否正常?
- azure - Azure 服务总线 - 订阅消息一览