【发布时间】:2012-06-21 13:49:01
【问题描述】:
我有一个搜索表单,有很多选项,提交到带有 Get 请求的路线。网址是这样的:
http://localhost:3000/restaurants/search?utf8=%E2%9C%93&city=&cuisine=&number_of_people=&query=hello
有更多的参数。我想让它更干净,比如删除所有空白的参数。
类似这样:(基本上删除所有空白的参数)
http://localhost:3000/restaurants/search?query=hello
怎么做?
一种方法可以使用
CGI::parse("foo=bar&bar=foo&hello=hi")
给你
{"foo"=>["bar"], "hello"=>["hi"], "bar"=>["foo"]}
首先在中间操作和中间操作中重定向用户,检查哪些参数为空白并删除它们,然后最终将他重定向到实际的搜索操作。但这听起来很蹩脚的事情。我怎样才能以更好的方式做到这一点?
【问题讨论】:
-
为什么空白值是问题?
-
@SergioTulentsev 让网址更干净..
-
@SergioTulentsev 它是一个搜索表单。一旦用户提交表单。一切都来了。
-
你可以像
query.gsub(/\w+=&/, '')那样做。 -
我想对 Sergio 的 cmets 投反对票。
标签: ruby-on-rails ruby query-string querystringparameter