2

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

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

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

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

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

也许我应该创建一个验证来确保“名称”只是空格和字母,而不是执行上述操作?有没有为此目的而内置的东西?

4

2 回答 2

9

您可以使用 ActiveSupport 的parameterize方法:

def to_param
  name.parameterize
end
于 2010-08-17T16:07:52.113 回答
1

你可以考虑这个to_slug插件。另请参阅此相关问题

于 2010-08-17T16:05:20.920 回答