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