j-d*_*exx 3 ruby-on-rails friendly-id ruby-on-rails-3
我无法解决这个问题。使用文档
我有两个模型
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
Run Code Online (Sandbox Code Playgroud)
根据文档,这应该可以工作。但是,当我创建一个页面时,它不会通过范围创建一个 slug,这意味着当我创建另一个同名页面时,我会收到重复索引错误。
如果您当前正在使用以下内容在 slug 字段上索引您的页面:
add_index :page, :slug, :unique => true
Run Code Online (Sandbox Code Playgroud)
那么你可能想把它换成 slug 和区域的索引:
remove_index :page, :slug
add_index :page, [:slug, :region_id], :unique => true
Run Code Online (Sandbox Code Playgroud)
该文档描述了如何在 FriendlyId 5 中开始使用:history
和:scoped
一起使用,也许这可以为您提供一些关于如何在您的情况下解决它的想法:http : //rubydoc.info/github/norman/friendly_id/master/file/README.md #Upgrading_from_FriendlyId_4_0
或者,您可以删除唯一性约束,因为我现在看到您已经回复了我的原始评论。:)
remove_index :page, :slug
add_index :page, :slug # no :unique here
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
846 次 |
最近记录: |