ruby-on-rails - 删除非法字符的助手?

标签 ruby-on-rails string url illegal-characters

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

e.g. example.com/this-is-a-url

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

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

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

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

最佳答案

您可以使用 ActiveSupport 的 parameterize 方法:

def to_param
  name.parameterize
end

关于ruby-on-rails - 删除非法字符的助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3504440/

相关文章:

python - Pandas :如果关键字出现在任何列中,则选择行

ruby-on-rails - 从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过 mb_chars.normalize 和 iconv)

jquery - AJAX URL 和 GET 请求

ruby-on-rails - 如何从事件记录集合中获取所有 has_many 关联

java - java中如何找到两个相似的字符串?

ruby-on-rails - NoMethodError(未找到 R 函数 "get")

asp.net - 带有虚拟目录的 ASP.net 母版页中的基本 URL

url 重写目录问题 (htaccess)

ruby-on-rails - 如何在 rspec 中设置请求 header

ruby-on-rails - rails 引脚 : How does the pin id work?