我有这个网址:
http://localhost:3000/blog/posts?locale=en
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也假设有一些要附加的东西,所以它放置了初始值?上.
原文地址:https://www.jb51.cc/ruby/269674.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。