我应该如何将帖子标题转换成Ruby中的段塞呢?
标题可以有任何字符,但我只想让弹格允许[a-z0-9-_] (它应该允许其他字符吗?)
所以基本上:
发布于 2010-11-29 21:44:08
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')downcase使其小写。strip确保没有前导或尾随空格。第一个gsub用连字符替换空格。第二个gsub移除所有非α非破折号非下划线字符(请注意,这个集合非常接近\W,但也包括破折号,这就是为什么在这里拼出来的)。
发布于 2010-11-29 23:47:35
这是铁轨吗?(在西纳特拉的作品)
string.parameterize就这样。有关更复杂的弹射,请参见ActsAsUrl。它可以做到以下几点:
"rock & roll".to_url => "rock-and-roll"
"$12 worth of Ruby power".to_url => "12-dollars-worth-of-ruby-power"
"10% off if you act now".to_url => "10-percent-off-if-you-act-now"
"kick it en Français".to_url => "kick-it-en-francais"
"rock it Español style".to_url => "rock-it-espanol-style"
"tell your readers 你好".to_url => "tell-your-readers-ni-hao"发布于 2010-11-29 21:45:45
弹状物是一个很棒的Rails插件,可以处理几乎所有东西,包括时髦的字符,但是它的实现非常简单。将其放入字符串中,您将得到排序。以下是浓缩的来源:
String.class_eval do
def to_slug
value = self.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n, '').to_s
value.gsub!(/[']+/, '')
value.gsub!(/\W+/, ' ')
value.strip!
value.downcase!
value.gsub!(' ', '-')
value
end
endhttps://stackoverflow.com/questions/4308377
复制相似问题