Ruby on rails Rails/Postgres枚举实现使用枚举键(而不是其值)创建记录

Ruby on rails Rails/Postgres枚举实现使用枚举键(而不是其值)创建记录,ruby-on-rails,postgresql,enums,enumeration,Ruby On Rails,Postgresql,Enums,Enumeration,使用Rails 6.1.1 我已经在rails上创建了Enum的postgres实现。但是,在创建记录时,enum列正在保存enum的键,而不是我所期望的值 迁移: execute "CREATE TYPE member_status_type AS ENUM ('New Member', 'Member Status Not Set')" add_column :members, :member_status, :member_status_type MemberEnum

使用Rails 6.1.1

我已经在rails上创建了Enum的postgres实现。但是,在创建记录时,enum列正在保存enum的键,而不是我所期望的值

迁移:

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
enum 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">
=>#
成员型号:

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