我正在使用friendly_id和rails 3.2。我正在尝试将产品表转换为干净的网址。我使用新的slug列没有任何问题,并且网址生成正常
example.com/products/new-friendly-url
我遇到的问题是,我仍然希望保留活动记录中的唯一ID或其他一些唯一标识符。原因是许多产品可能具有相同的友好标题。如果我的产品具有完全相同的标题,那么当前的行为就是生成一个带有一些唯一标识的slug,例如:
example.com/products/new-friendly-url--2
所以friendly_id正在产生独特的slu ,,但我只是想改变格式而不确定在哪里/怎么做。
有没有办法删除额外的 - 只有一个“ - ”,friendly_id正在添加?
这是我的模特
class Product < ActiveRecord::Base
extend FriendlyId
friendly_id :title, :use => :slugged
attr_accessible :description, :image, :posted_by, :title, :url,
:price
validates_format_of :price, :with => /^[0-9]+$/
belongs_to :user
has_many :comments
答案 0 :(得分:3)
您可以在friendly-id。
的配置中更改序列分隔符class Product < ActiveRecord::Base
extend FriendlyId
friendly_id :title do |config|
config.use :slugged
config.sequence_separator = ":"
end
end
不建议将分隔符更改为“ - ”的操作。该文件说:
用于将slug base与数字序列分开的字符串。
默认情况下, - 用于将slug与序列分开。 FriendlyId使用两个破折号来区分序列和slu 他们名字中的数字。
您可以通过设置sequence_separator来更改默认分隔符 配置选项。
出于显而易见的原因,你应该避免将它设置为“ - ”,除非你是 确定你永远不会想要一个带有数字的友好id。
如果你可以使用Rails 4,你可以将friendly-id升级到5.0,它会自动解决这个问题。