我能放弃'?'在窗体中触发GET请求?

时间:2011-11-14 13:03:08

标签: ruby-on-rails-3 button get

我想用一个按钮替换一个简单的链接以进行样式设置。使用button_to代替link_to似乎是阻力最小的路径,而且我至少渴望保持RESTful,这意味着在这种情况下是GET请求。

当我替换:

link_to "my_page", my_page_path

使用:

button_to "my_page", my_path_path, :method => :get

......有一个'?'附加到URL的末尾。当然,这是一件小事。但有没有一种简单的方法来删除'?',因为我没有查询字符串参数?

这是一个浏览器问题,而不是一个rails问题?当然,我可以将链接设置为看起来像一个按钮,但我宁愿不...

1 个答案:

答案 0 :(得分:3)

带数据的GET请求是在URL中发送数据的请求。浏览器(任何浏览器)识别URL中有数据的方式是问号。

基本上,它与Ruby完全无关。

您可以删除问号的唯一方法是使用“规范网址”或“干净网址”,该网址通常包含以斜杠划分的数据。

http://www.domain.com/data/more-data/

这将需要使用apache服务器上的.htaccess文件完成URL重写。我认为在IIS(Windows)上他们使用web.config。他们基本上使用问号将URL更改回URL,但对用户不可见。

如果您只是想从网址中删除问号,这是一种难以理解的技术而非浪费时间。

或者,您可以联系您的虚拟主机。他们可能愿意帮助你。