Ruby on rails 替换%20“;加上-&引用;在rails的URL中
我正在使用rails开发一个web应用程序。 出于美观目的,我需要将%20替换为- 之前: 之后:Ruby on rails 替换%20“;加上-&引用;在rails的URL中,ruby-on-rails,ruby,regex,url,Ruby On Rails,Ruby,Regex,Url,我正在使用rails开发一个web应用程序。 出于美观目的,我需要将%20替换为- 之前: 之后: 在rails中是否还有其他方法可以实现这一点?如果字符串存储在变量url中,则可以使用 url.gsub(/%20/, "-") 返回所需字符串,或 url.gsub!(/%20/, "-") 使用所需的值实际修改url的值。如果字符串存储在变量url中,则可以使用 url.gsub(/%20/, "-") 返回所需字符串,或 url.gsub!(/%20/, "-") 要使用所需的值实际
在rails中是否还有其他方法可以实现这一点?如果字符串存储在变量
url
中,则可以使用
url.gsub(/%20/, "-")
返回所需字符串,或
url.gsub!(/%20/, "-")
使用所需的值实际修改
url
的值。如果字符串存储在变量url
中,则可以使用
url.gsub(/%20/, "-")
返回所需字符串,或
url.gsub!(/%20/, "-")
要使用所需的值实际修改url
。应使用将其拆分,然后仅更改路径组件:
require 'uri'
u = URI.parse(url)
u.path = u.path.gsub('%20', '-')
url = u.to_s
仅仅是一个简单的整体URL可能会很好,但一点额外的偏执可能会节省一些混乱和痛苦的道路上。此外,如果只是替换文字字符串而不是正则表达式,则可以使用字符串作为gsub
的第一个参数,并避免一些转义问题:
模式通常是一个Regexp;如果以字符串形式给出,则它包含的任何正则表达式元字符都将按字面解释,例如,'\\d'
将匹配后跟d
的齿隙,而不是数字
您应该使用将其拆分为多个部分,然后仅更改路径组件:
require 'uri'
u = URI.parse(url)
u.path = u.path.gsub('%20', '-')
url = u.to_s
仅仅是一个简单的整体URL可能会很好,但一点额外的偏执可能会节省一些混乱和痛苦的道路上。此外,如果只是替换文字字符串而不是正则表达式,则可以使用字符串作为gsub
的第一个参数,并避免一些转义问题:
模式通常是一个Regexp;如果以字符串形式给出,则它包含的任何正则表达式元字符都将按字面解释,例如,'\\d'
将匹配后跟d
的齿隙,而不是数字
这是搜索引擎优化URL的最佳方式
这是搜索引擎优化URL的最佳方式您可能希望在
电影
模型中将“Apna Sapna Money”作为属性保存(我通常称之为slug
s)。然后,要生成这些,您可能只需要将电影标题中的空格替换为连字符。比如:
class Movie
before_create :generate_slug
private
def generate_slug
slug = title.gsub(" ", "-")
end
end
然后在你的控制器动作中,你可以简单地做一个电影!(参数[:id])
调用
基本上,用户没有理由到达包含%20的URL…您可能想在
电影模型中保存“Apna Sapna Money Money”作为属性(我通常称之为slug
s)。然后,要生成这些,您可能只需要将电影标题中的空格替换为连字符。比如:
class Movie
before_create :generate_slug
private
def generate_slug
slug = title.gsub(" ", "-")
end
end
然后在你的控制器动作中,你可以简单地做一个电影!(参数[:id])
调用
基本上,用户没有理由到达包含%20的URL…在哪里更改此代码?视频控制器或路由。rb?@Wen:您可能想在模型中添加一个slug,并通过slug引用模型。在谷歌上搜索一下“rails slug”广告,你应该会找到一些指针。我应该在哪里更改这些代码?视频控制器或路由。rb?@Wen:您可能想在模型中添加一个slug,并通过slug引用模型。在谷歌上搜索“rails slug”广告,你应该会找到一些指针。404这里没有GitHub页面。404这里没有GitHub页面。