我正在使用 Rails 开发 Web 应用程序。 为了美观,我需要将 %20 替换为 -
之前:http://localhost:3000/movies/2006/Apna%20Sapna%20Money%20Money
之后:http://localhost:3000/movies/2006/Apna-Sapna-Money-Money
无论如何我可以在 rails 中实现这个吗?
最佳答案
你应该使用 URI.parse
将其分解成多个部分,然后仅更改路径部分:
require 'uri'
u = URI.parse(url)
u.path = u.path.gsub('%20', '-')
url = u.to_s
只是一个简单的gsub
在整个 URL 上可能会工作正常,但多一点偏执可能会为您省去一些困惑和痛苦。此外,如果您只是替换文字字符串而不是正则表达式,则可以使用字符串作为 gsub
的第一个参数并避免一些转义问题:
The pattern is typically a Regexp; if given as a String, any regular expression metacharacters it contains will be interpreted literally, e.g.
'\\d'
will match a backlash followed byd
, instead of a digit.
关于ruby-on-rails - 在 Rails 的 URL 中将 "%20"替换为 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6742244/