我应该如何在Ruby中将帖子标题转换为slug?
标题可以有任何字符,但我只希望slug允许[a-z0-9-_]
个字符(是否允许其他字符?).
所以基本上:
- 把所有的信都写下来
- 将空格转换为连字符
- 删除无关字符
我应该如何在Ruby中将帖子标题转换为slug?
标题可以有任何字符,但我只希望slug允许[a-z0-9-_]
个字符(是否允许其他字符?).
所以基本上:
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
downcase
表示小写.strip
确保没有前导或尾随空格.前gsub
个字符用连字符替换空格.第二个gsub
删除所有非alpha非破折号非下划线字符(请注意,这组字符非常接近\W
,但也包括破折号,这就是为什么在这里拼写它).