В строке можно использовать метод инфлектора ActiveSupport parameterize
.
name = 'john smith' # => john smith
name.parameterize # => john-smith
Кроме того, параметризация использует опцию для переноса слова, поэтому вы можете заменить тире символом подчеркивания, подобным этому:
name.parameterize("_") # => john_smith
Преимущество использования параметризации состоит в том, что она нормализует символы по латинице, поэтому ...
name = "jöhanne såltveç"
name.parameterize # => johanne-saltvec