试图复制friendly_id所做的事情,将强者变成一个slu ..

时间:2016-07-12 01:30:33

标签: ruby-on-rails ruby ruby-on-rails-4 rubygems friendly-id

我需要复制friendly_id将文本更改为slugs的方式。

我正在将此用于我的应用

text        = "random text"
text_gsubed = (value.gsub ' ', '-')
slug        = text_gsubed.downcase

但是最近我意识到对于非字母或数字字符的文本,它会产生与firendly_id生成的不同的slug。例如。

text        = "random >> text"
text_gsubed = (value.gsub ' ', '-')
slug        = text_gsubed.downcase

上面代码生成的slu :: = random->>-text

slug feindly_id生成= random-text

我可能他们有一个内置方法,你可以像text.slugtext.friendly_id一样全局使用,如果你安装了gem但我看不到它。我也查看了他们的文件,找到了将字符串转换为slug但无法找到它的方法。

我如何模仿friendly_id正在做什么?

1 个答案:

答案 0 :(得分:2)

我可能会查看ActiveSupport :: Inflections#参数化。

在您的情况下,您应该可以致电:

text.parameterize

如果你想与其他参数结合使用,也许你可以做id或其他事情:

[id, title, others].join(' ').parameterize