首页 > 解决方案 > 如何在 FriendlyId 中的重复列 slug 上引发错误?

问题描述

我使用 friendly_id gem,如果我的 slug 列有重复值,gem 通过添加唯一键来更新它。我想提出错误already been taken。我怎样才能做到这一点?

标签: ruby-on-railsrubygemsfriendly-id

解决方案


似乎friendly_id(v5.2.4) 没有选项可以避免在发生slug 冲突时设置UUID。因此,解决此问题的最佳方法是重新定义负责解决冲突并引发异常的方法。

class Post < ApplicationRecord
  extend FriendlyId
  friendly_id :title, use: :slugged

  def resolve_friendly_id_conflict(candidates)
    raise ActiveRecord::RecordNotUnique
  end
end

推荐阅读