'rails', '~> 5.1.2'
'friendly_id', '~> 5.1.0'
我正在尝试将“作用域”添加到现有的子弹中。
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),我认为是应有的,但是保存时似乎并没有在搜索范围。 / p>
如果我在同一范围内创建重复项,则会添加重复代码(“ 42a8d035-ba2f-4a51-b85e-0872c4e207e2”)。
我希望这是有道理的-任何帮助将不胜感激。
谢谢, 安迪
答案 0 :(得分:0)
因此,事实证明,我应该多考虑一下此帖子。
“Key (slug)=() already exists” in friendly_id
在现有模型上添加范围意味着我没有考虑,但是不得不删除现有模型上的unique = true。
无论如何-喜欢great_id很棒的产品!