ruby-on-rails - Rails 5:rails url 错误的自定义 slug
问题描述
我正在关注hackernoon 上的教程,以生成混淆的URL。
第一步是在数据库中添加一个 slug 列,但是我得到了一个错误。
AddSlugToReservations
class AddSlugToReservation < ActiveRecord::Migration[5.2]
def change
add_column :reservations, :slug, :string, null: false
add_index :reservations, :slug, unique: true
end
end
我尝试时收到以下错误rails db:migrate
SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "reservations" ADD "slug" varchar NOT NULL
所以我将迁移文件更改为:
class AddSlugToReservation < ActiveRecord::Migration[5.2]
def change
add_column :reservations, :slug, :string, null: false, default: 0
change_column :reservations, :slug, :string, default: nil
add_index :reservations, :slug, unique: true
end
end
但是后来我遇到了以下错误:
SQLite3::ConstraintException: UNIQUE constraint failed: reservations.slug: CREATE UNIQUE INDEX "index_reservations_on_slug" ON "reservations" ("slug")
我应该怎么办?我找不到任何解决方案...
解决方案
您可以使用以下代码执行此操作
class AddSlugToReservation < ActiveRecord::Migration[5.0]
def change
add_column :reservations, :slug, :string, unique: true, default: 0, null: false
end
end
推荐阅读
- swift - 禁用 WKWebView 上的链接拖动
- php - 如何在 Google Compute Engine 上启用 PHP Zip 模块?
- web-scraping - 似乎无法访问元标记
- php - 通过 user_id 获得 Lighthouse GraphQL 数据所有权
- java - JTextField 的内部垂直对齐是否被 Java 11 破坏了?
- mysql - 检查表中mysql数据库中值的总出现次数是否为奇数
- python - 图的固定宽度
- android - 如何在 android Kotlin 中制作像素网格?
- php - 根据特定运输类别的购物车商品数量显示或隐藏运输方式
- django - 多对多关系查询在 post_save 信号上返回空查询集,但在 django shell 中不返回