activerecord枚举行为更改

qlvxas9a  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(196)

我正在从6.0.3升级到6.1.4。升级后我注意到的一点是,枚举属性不再返回键。它返回数据库中的实际值。
如:

enum onboard_variation: {
    key1: "value1",
    key2: "value2",
    key3: "value3"
  }

在控制台中
rails 6.0.3

Account.first.onboard_variation => "key1"

轨道6.1.4

Account.first.onboard_variation => "value1"

我浏览了整个发行说明,没有提到这个变化。是什么原因造成的?

5n0oy7gb

5n0oy7gb1#

找出问题所在。我们有一个自定义的默认定义,如下所示

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" }

相关问题