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


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

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

В моей модели я уже добавил:

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

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

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

2 2

2 ответа:

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

def to_param
  name.parameterize
end

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