轨道5:导轨的URL错误定制蛞蝓

问题描述 投票:0回答:2

我下面就hackernoon教程,产生模糊处理的URL。

第一步是到塞柱添加到数据库中,但我得到了一个错误。

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")

我该怎么办?我找不到任何解决这个...

ruby-on-rails
2个回答
3
投票

你可以用下面的代码做到这一点

class AddSlugToReservation < ActiveRecord::Migration[5.0]
  def change
    add_column :reservations, :slug, :string, unique: true, default: 0, null: false
  end
end

0
投票

尝试这个

class AddSlugToReservation < ActiveRecord::Migration[5.2]
  def change
    add_column :reservations, :slug, :string, unique: true
    change_column_null :reservations, :slug, false
  end
end

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.