【发布时间】:2014-06-13 11:21:31
【问题描述】:
我无法解决这个问题。使用documentation
我有两个模型
class Region < ActiveRecord::Base
extend FriendlyId
has_many :pages
friendly_id :name, :use => :slugged
end
class Page < ActiveRecord::Base
extend FriendlyId
belongs_to :region
friendly_id :name, :use => :scoped, :scope => :region
end
根据文档,这应该可以工作。但是当我创建一个页面时,它不会通过范围创建一个 slug,这意味着当我创建另一个具有相同名称的页面时,我会遇到重复索引错误。
【问题讨论】:
-
我猜你必须更改数据库索引(虽然不完全确定)。您在设置 FriendlyId 时添加了哪些索引?
-
啊哈,我有一个唯一索引。我认为friendly_id出于某种原因添加了与范围模型相关的内容,但它似乎只是检查是否有另一个页面具有属于该区域的相同slug。非常感谢。您想将更新索引作为答案,以便我将其标记为正确吗?
-
很高兴它有帮助。 :) 我已经回答了不同的建议,但我将两者都留给未来的读者。
标签: ruby-on-rails ruby-on-rails-3 friendly-id