Rails/Postgres 枚举实现使用枚举键创建记录,而不是它的值
Rails/Postgres enum implementation creating records with enum key, not its value
使用 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">
会员模型:
enum status: MemberEnums::MEMBER_STATUSES
通过更改枚举的名称将实现您想要的结果。这可能是因为您为属性和枚举指定了相同的名称
使用 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">
会员模型:
enum status: MemberEnums::MEMBER_STATUSES
通过更改枚举的名称将实现您想要的结果。这可能是因为您为属性和枚举指定了相同的名称