ruby-on-rails – 从字符串中删除尾部“?”

我有这个网址:
http://localhost:3000/blog/posts?locale=en

我有一个帮助删除?locale = en url:

def url_without_locale_params(url)
  uri = URI url
  params = Rack::Utils.parse_query uri.query
  params.delete 'locale'
  uri.query = params.to_param
  uri.to_s
end

有了这个助手,我得到了这个网址http:// localhost:3000 / blog / posts?.我想删除尾随?

结果应该是http:// localhost:3000 / blog / posts.

解决方法

到目前为止,答案都是关于字符串本身的.你实际在做的是告诉它它有“params”.如果你把它设为零,如果params.to_param ==“”你就不会有这个问题.
def url_without_locale_params(url)
  uri = URI url
  params = Rack::Utils.parse_query uri.query
  params.delete 'locale'
  uri.query = params.to_param.blank? ? nil : params.to_param
  uri.to_s
end

这样的事情应该可以解决问题.这样做的原因是,即使有一个空字符串,URI也假设有一些要附加的东西,所以它放置了初始值?上.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...