我在用着
link_to 'My link', path(:arg1 => session[:arg1], :arg2 => session[:arg2],:arg3 => anyobject.id), :method => :post
但生成的 HTML 链接包括 (arg1,arg2,arg3) 作为URL http://en.wikipedia.org/wiki/Uniform_Resource_Locator查询参数。
如何去除它们?我错过了文档中的某些内容吗?
A link_to
总是将参数放入查询字符串中,因为它正在创建 get 样式的 HTML 链接 - 即使您将:method => :post
只是附加一个额外的(“特殊”)参数_method
.
我认为你真正想要的是button_to
链接 - 这将使其成为一种表单帖子。它的工作原理相同,但它说button_to
相反(例如,button_to 'My link', path(:params => :go_here)
。缺点是它看起来像一个按钮。但是您可以给它一个 CSS 类(例如“unbutton”),然后更改该 CSS 类的样式以使其看起来不像按钮。
或者,如果你真正想要的是实际上没有params
完全传递给控制器...然后在创建链接时不要包含它们(例如,link_to "My link" path
- 没有必要:post
如果您不想发布任何内容params
).
最后,如果你想要的是params
成为 URL 的一部分(例如,stuff/[param_1]/more_stuff/[param_2]
等)那么您需要更新您的路线以将这些参数作为选项包含在内。看一下路由部分rdoc http://api.rubyonrails.org/classes/ActionController/Routing.html如何做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)