How should I convert a post title to a slug in Ruby?
The title can have any characters, but I only want the slug to allow [a-z0-9-_] (Should it allow an
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
downcase makes it lowercase. The strip makes sure there is no leading or trailing whitespace. The first gsub replaces spaces with hyphens. The second gsub removes all non-alpha non-dash non-underscore characters (note that this set is very close to \W but includes the dash as well, which is why it's spelled out here).