我使用用户输入字符串来创建网址,我只希望网址包含小写字母和连字符
e.g。 example.com/this-is-a-url
在我的模型中,到目前为止我添加了:
def to_param
name.downcase.gsub(" ", "-")
end
这使它成为小写和连字符。如何删除所有非法字符,例如“/”$£%&等等?正则表达式可能是答案,但Rails中是否已为此目的内置了一些内容?
也许不是上面做的,我应该创建一个验证,确保'name'只是空格和字母?是否有为此目的内置的东西?
答案 0 :(得分:7)
您可以使用ActiveSupport的parameterize
方法:
def to_param
name.parameterize
end
答案 1 :(得分:1)
您可以考虑使用to_slug
插件。另请参阅this related question。