Friendly_id Уникальное противоречие с масштабом и историей - PullRequest
0 голосов
/ 25 июня 2018
'rails', '~> 5.1.2'
'friendly_id', '~> 5.1.0'

Я пытаюсь добавить «scoped» к моим существующим слагам.

class Model < ApplicationRecord   
  extend FriendlyId   
  belongs_to :board   
  friendly_id :slug_candidates, use: [:slugged, :scoped, :history], :scope => :board

Но я получаю эту ошибку при запуске дубликата, который должен иметь другую область действия.

ActiveRecord :: RecordNotUnique: PG :: UniqueViolation: ОШИБКА: дубликат значение ключа нарушает уникальное ограничение "index_models_on_slug" ПОДРОБНЕЕ: Ключ (slug) = (xxx-xxxx-xxx) уже существует.

Просматривая журналы, я вижу, что генерируется область действия, и перечисляет модель области действия (с помощью board_id, xx), которая, как я полагаю, такова, как и должна, но, похоже, она не ищет область при сохранении.

Если я создаю дубликат в этой же области, он добавляет дубликат кода ("42a8d035-ba2f-4a51-b85e-0872c4e207e2").

Надеюсь, это имеет смысл - любая помощь будет оценена.

Спасибо, Andy

1 Ответ

0 голосов
/ 28 июня 2018

Получается, что я должен был подумать об этом посте немного больше.

«Ключ (слаг) = () уже существует» в friendly_id

Добавление области действия к существующим моделям означало, что я не задумывался, а должен был удалить уникальное = true для существующей модели.

В любом случае - любите friendly_id отличный продукт!

...