Rails 5: ошибка с нестабильными ссылками для rails - PullRequest
0 голосов
/ 04 февраля 2019

Я следовал руководству по 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")

Что мне делать?Я не мог найти решение этой проблемы ...

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вы можете сделать это с кодом ниже

class AddSlugToReservation < ActiveRecord::Migration[5.0]
  def change
    add_column :reservations, :slug, :string, unique: true, default: 0, null: false
  end
end
0 голосов
/ 04 февраля 2019

попробуйте

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...