Помощник для удаления недопустимых символов?

Я использую строку пользовательского ввода для создания URL-адреса, и я хочу, чтобы URL-адрес содержал только строчные буквы и дефисы.

например example.com/this-is-a-url

В моей модели я добавил до сих пор:

  def to_param
      name.downcase.gsub(" ", "-")
  end

Это делает его строчным и дефисным. Как я могу удалить все недопустимые символы, такие как '/"$£%& и т. д.? Регулярные выражения могут быть ответом, но есть ли что-то уже встроенное для этой цели в Rails?

Возможно, вместо того, чтобы делать вышеперечисленное, мне следует создать проверку, которая гарантирует, что «имя» состоит только из пробелов и букв? Есть ли что-то встроенное для этой цели?


person amaseuk    schedule 17.08.2010    source источник


Ответы (2)


Вы можете использовать метод ActiveSupport parameterize:

def to_param
  name.parameterize
end
person John Topley    schedule 17.08.2010
comment
Я удивлен, что этого не было в вопросе, на который я ссылался. +1 за встроенный подход. - person Mark Rushakoff; 17.08.2010

Для этого вы можете использовать плагин to_slug. См. также этот связанный вопрос.

person Mark Rushakoff    schedule 17.08.2010