Ruby on rails 删除枚举的默认值

Ruby on rails 删除枚举的默认值,ruby-on-rails,Ruby On Rails,是否可以删除枚举的默认值?我有以下资料: class Post < ApplicationRecord enum status: { auto_draft: 'auto_draft', draft: 'draft', future: 'future', pending: 'pending', private: 'private', publish: 'publish', trash: 'trash' }, _suffix: t

是否可以删除枚举的默认值?我有以下资料:

class Post < ApplicationRecord
  enum status: {
    auto_draft: 'auto_draft',
    draft: 'draft',
    future: 'future',
    pending: 'pending',
    private: 'private',
    publish: 'publish',
    trash: 'trash'
  }, _suffix: true
end
class Post
在迁移后的过程中:

    execute <<-SQL
      ALTER TABLE posts
        ADD status enum(
          'auto_draft',
          'draft',
          'future',
          'pending',
          'private',
          'publish',
          'trash'
        ) NOT NULL AFTER id;
    SQL

execute您可以使用Rails迁移来更改列null

change\u column\u null:posts,:status,true

这将采用表名和列名,并将其设置为null true

我不熟悉那种设置枚举的方法。我通常这样做

#not null column with default
add_column :posts, :status, :integer, default: 0, null: false

# for a nullable column...
add_column :posts, :status, :integer
然后在模型中

class Post < ApplicationRecord
...
  enum status: %i[...]
end
class Post