帮助删除非法字符?

ama*_*euk 2 string url ruby-on-rails illegal-characters

我使用用户输入字符串来创建一个网址,我只希望网址包含小写字母和连字符

例如example.com/this-is-a-url

在我的模型中,到目前为止我添加了:

  def to_param
      name.downcase.gsub(" ", "-")
  end
Run Code Online (Sandbox Code Playgroud)

这使它成为小写和连字符.如何删除所有非法字符,例如'/"$£%&等等?正则表达式可能是答案,但Rails中是否已为此目的内置了一些内容?

也许我应该创建一个验证来确保'name'只是空格和字母?是否有为此目的而内置的东西?

Joh*_*ley 7

您可以使用ActiveSupport的parameterize方法:

def to_param
  name.parameterize
end
Run Code Online (Sandbox Code Playgroud)