如何配置friendly_id gem的序列分隔符

Posted

技术标签:

【中文标题】如何配置friendly_id gem的序列分隔符【英文标题】:How to configure sequence separator of friendly_id gem 【发布时间】:2012-10-27 14:27:23 【问题描述】:

我在 Rails 3 中使用 friendly_id gem 版本 4.0.9,我想将默认序列分隔符从 - 更改为 _

我试过了,但它不起作用:

class Restaurant < ActiveRecord::Base
   extend FriendlyId
   friendly_id do |config|
     config.base = :name
     config.use :slugged
     config.sequence_separator = "_"
   end
  .....
end

【问题讨论】:

你找到配置序列分隔符的解决方案了吗? 【参考方案1】:

适用于使用 Rails 4.x 的 Friendly_Id Gem 5.x (可能也适用于较低版本的 Friendly_Id Gem 或 Rails)


将以下方法添加到您正在使用 Friendly_Id 生成 slugs 的模型文件中-

def normalize_friendly_id(string)
  super.gsub("-", "_")
end

【讨论】:

【参考方案2】:

取自gem's tests on GitHub:

friendly_id :name, :use => :slugged, :sequence_separator => "_"

应该可以...

【讨论】:

我从 Google 来到这里,我遇到了同样的问题。 sequence_separator 似乎不起作用,使用问题中的方法或答案。什么给了? @GeorgeMillo from the friendlyid docs, rubydoc.info/github/norman/friendly_id/FriendlyId/Slugged/… suquence_seperator : '用于将 slug 碱基与数字序列分开的字符串。' 是的,我意识到我误解了 sequence_separator 应该做什么 - 例如。如果您的 slug 是 my-awesome-slug 和哈希之间的“my-awesome-slug_1234hashforuniqueness5678, it only affects the _`,而不是 my-awesome-slug 中的 -s。(我希望这是有道理的。)

以上是关于如何配置friendly_id gem的序列分隔符的主要内容,如果未能解决你的问题,请参考以下文章

通过 Friendly_Id Gem 在 URL 中使用 Slug 和 id

rails 使用 friendly_id gem 按资源名称路由访问

更新时删除旧的friendly_id gem slug [关闭]

Rails 4中友好id gem的随机slug url

Rails:FriendlyId gem 不工作

导轨/Friendly_id。如何为旧的(丑陋的)URL 呈现 404 页面