【问题标题】:Rails/Postgres enum implementation creating records with enum key, not its valueRails/Postgres 枚举实现使用枚举键创建记录,而不是它的值
【发布时间】:2021-02-10 16:34:33
【问题描述】:

使用 Rails 6.1.1

我在 Rails 上创建了枚举的 postgres 实现。但是,在创建记录时,枚举列保存的是枚举的键,而不是我期望的值。

迁移:

execute "CREATE TYPE member_status_type AS ENUM ('New Member', 'Member Status Not Set')"
add_column :members, :member_status, :member_status_type

MemberEnums.rb

MEMBER_STATUSES = {
new_member: "New Member",
member_status_not_set: "Member Status Not Set"}.freeze

会员模型:

enum member_status: MemberEnums::MEMBER_STATUSES

会员创建:

Member.create!({member_status: MemberEnums::MEMBERS_STATUSES[:new_member]})

结果:

=> #<Member id: 12, member_status: "new_member">

我期待的结果应该是

=> #<Member id: 12, member_status: "New Member">

【问题讨论】:

    标签: ruby-on-rails postgresql enums enumeration


    【解决方案1】:

    会员模型:

    enum status: MemberEnums::MEMBER_STATUSES
    

    通过更改枚举的名称,您将获得所需的结果。这可能是因为您为属性和枚举指定了相同的名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多