2017-01-10 226 views
0

我写了一个用于显示数据库中数据的sinatra应用程序。用户可以将客户号码放入表单中。然后通过/customer/search进行处理,该路径通过params[:customer_number]捕获论坛的输入,对其进行处理,结果显示在网页上。隐藏机架中的部分查询字符串

我想什么做的,就是收拾一下网址,所以不是说

my_url/customer/search?customer_number=123456 

它只是说

my_url/customer/?123456 

我已经看到了这个在其他网站上所以它必须是一般可能,但有可能与机架& sinatra?

我的应用程序是模块化格式,因此应用程序是通过运行rackup config.ru启动的。

回答

1

喜欢的东西

get '/customer/:customer_number' 

根本不需要查询字符串中的参数(URL中没有?)。在这种情况下,是来自URL的参数。

+0

'my_url/customer /?123456'仍然给我以前做过的 - Sinatra错误消息 – reedstonefood

+0

那么,如果你放一个?,那些就是查询字符串参数,并且是键和值的对。就像'my_url/customer /?customer_number = 123456'。但我说过,你不需要查询字符串参数。摆脱那个'?' – Ursus

+0

啊!是的,这是有效的 - 我被挂在了另一个有'?'的应用程序,但这同样好。现在的问题是如何处理用户可以放入客户号码的表单?我是否必须重新设计它才不是表单,而只是重定向到URL?还是有更聪明/更简单的选择?该动作目前设置为'/ customer/search' – reedstonefood