ruby-on-rails - Rails 6.1.4 中的 ActiveRecord 枚举行为更改
问题描述
我正在从 6.0.3 升级到 6.1.4。升级后我注意到的一件事是,枚举属性不再返回密钥。它返回数据库中的实际值。
例如:
enum onboard_variation: {
key1: "value1",
key2: "value2",
key3: "value3"
}
在控制台中
导轨 6.0.3
Account.first.onboard_variation => "key1"
导轨 6.1.4
Account.first.onboard_variation => "value1"
我浏览了整个发行说明,但没有提及此更改。什么可能促成了这一点?
解决方案
弄清楚问题出在哪里。我们有一个自定义的默认定义,如下所示
attribute :onboard_variation, :string, default: -> { Utilities::Random.flip_coin ? "value1" : "value2" }
Rails 6.1 支持枚举定义的默认值。更改为下面,一切都按预期工作
enum onboard_variation: {
key1: "value1",
key2: "value2",
key3: "value3"
}, _default: -> { Utilities::Random.flip_coin ? "value1" : "value2" }
推荐阅读
- c++ - 将“.lib”和“.h”文件添加到项目后,在 Visual Studio 2017 中使用 C++ 中的 pcap.h 出现问题
- python - 如何检查熊猫系列中的特定项目是否为 NaT
- java - 我如何获得这些变量的平均值.....算术函数是什么?
- python - 张量流中的 tf.checkpoint.save() 和 tf.checkpointmanager.save() 有什么区别?
- bots - Slack bot 请求验证不适用于按钮操作。如果我们在块套件 U 中有粗体格式标记 *
- angular - 组件正在路由器出口外加载
- java - 我的循环继续运行我想运行一次的特定方法
- javascript - ajax 将 null 发送到 MVC Api 控制器
- python - 根据日期列取列到行
- swift - 使用 FirebaseUI 身份验证删除用户帐户时出错。服务