试图复制 friendly_id 将强者变成鼻涕虫的做法
Trying to copy what friendly_id does to turn a strong into a slug
我需要复制 friendly_id 将文本更改为 slug 的方式。
我在我的应用程序中使用了这个
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
上面代码生成的 slug = random->>-text
子弹 feindly_id 生成 = random-text
我虽然也许他们有一个内置的方法,你可以像 text.slug
或 text.friendly_id
那样全局使用,如果你安装了 gem 但我看不到一个。我还查看了他们的文件以找到将字符串变成 slug 但找不到的方法。
如何模仿 friendly_id 正在做的事情?
我可能会研究 ActiveSupport::Inflections#parameterize。
在你的情况下,你应该可以调用:
text.parameterize
如果您还想与其他参数结合使用,也许可以使用 id 或其他您可以做的事情:
[id, title, others].join(' ').parameterize
我需要复制 friendly_id 将文本更改为 slug 的方式。
我在我的应用程序中使用了这个
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
上面代码生成的 slug = random->>-text
子弹 feindly_id 生成 = random-text
我虽然也许他们有一个内置的方法,你可以像 text.slug
或 text.friendly_id
那样全局使用,如果你安装了 gem 但我看不到一个。我还查看了他们的文件以找到将字符串变成 slug 但找不到的方法。
如何模仿 friendly_id 正在做的事情?
我可能会研究 ActiveSupport::Inflections#parameterize。
在你的情况下,你应该可以调用:
text.parameterize
如果您还想与其他参数结合使用,也许可以使用 id 或其他您可以做的事情:
[id, title, others].join(' ').parameterize