[英]friendly_id gem with rails, converting to SEO friendly urls
我正在使用friendly_id和rails 3.2。 我正在尝试将产品表转换为干净的URL。 使用新的slug列时,我没有任何问题,并且url可以正常生成
example.com/products/new-friendly-url
我遇到的问题是,我仍然想保留活动记录中的唯一ID或其他唯一标识符。 原因是,许多产品可能具有相同的友好名称。 如果我有一个标题完全相同的产品,则当前行为是生成带有某些唯一标识的子弹,例如:
example.com/products/new-friendly-url--2
因此friendly_id会生成唯一的标签,但我只是尝试更改格式,不确定该在何处/如何执行。
有没有一种方法可以删除多余的-,而只添加一个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
您可以在friendly-id的配置中更改序列分隔符。
class Product < ActiveRecord::Base
extend FriendlyId
friendly_id :title do |config|
config.use :slugged
config.sequence_separator = ":"
end
end
不建议将分隔符更改为“-”的操作。 该文件说:
用于将子句基数与数字序列分开的字符串。
默认情况下,-用于将子弹与序列分开。 FriendlyId使用两个破折号来区分序列和名称中带有数字的条。
您可以通过设置sequence_separator配置选项来更改默认分隔符。
出于明显的原因,除非确定您永远不会想要带有数字的友好ID,否则应避免将其设置为“-”。
如果可以使用Rails 4,则可以将friendly-id升级到5.0,它将自动解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.