我有一个搜索表单,有很多选项,通过 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"]}
首先在中间操作上重定向用户,并在中间操作中检查哪些参数为空并将其删除,然后最后将其重定向到搜索的实际操作。但这听起来很蹩脚。我怎样才能以更好的方式做到这一点?
我的解决方案是禁用空白输入并选择:
$('form').submit (e) ->
$(@).find('select,input').map( (i, e) -> e.disabled = !$(e).val() )
关于删除utf8
我发现this。所以我最好继续发送。
在服务器上执行所有这些操作会导致使用redirect_to时产生额外的请求,因此我更喜欢使用客户端代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)