Ruby on rails RubyonRails:链接到UsingPost方法,但参数在URL中

Ruby on rails RubyonRails:链接到UsingPost方法,但参数在URL中,ruby-on-rails,link-to,Ruby On Rails,Link To,我正在使用 link_to 'My link', path(:arg1 => session[:arg1], :arg2 => session[:arg2],:arg3 => anyobject.id), :method => :post 但是正在生成的HTML链接包含(arg1、arg2、arg3)作为查询参数 如何删除它们?我在文档中遗漏了什么吗?Alink\u to在创建get样式的HTML链接时,总是会将参数放入查询字符串中,即使您将:method=>:post

我正在使用

link_to 'My link', path(:arg1 => session[:arg1], :arg2 => session[:arg2],:arg3 => anyobject.id), :method => :post
但是正在生成的HTML链接包含(arg1、arg2、arg3)作为查询参数


如何删除它们?我在文档中遗漏了什么吗?

A
link\u to
在创建get样式的HTML链接时,总是会将参数放入查询字符串中,即使您将
:method=>:post
添加到一个额外的(“特殊”)参数
\u method

我想你真正想要的是一个链接到的
按钮,这将使它成为一种形式的帖子。它的工作原理是一样的,但它会将
按钮改为
(例如,
按钮改为“我的链接”,路径(:params=>:go_here)
。缺点是它看起来像一个按钮。但是你可以给它一个CSS类(例如“unbutton”),然后更改该CSS类的样式,使它看起来不像一个按钮

或者,如果您真正想要的是根本不向控制器传递任何
参数
,那么在创建链接时不要包含它们(例如,
链接到“我的链接”路径
——如果您不想发布任何
参数
,则不需要
:post


最后,如果您希望
params
成为URL的一部分(例如,
stuff/[param_1]/more_stuff/[param_2]
,等等)然后,您需要更新路由以将这些参数作为选项包含在内。请查看的路由部分以了解如何做到这一点。

您可以使用以下代码,这些代码需要数据方法在Ajax中切换到post模式


:post}%>

这个解决方案花了我几个小时的时间搜索!我是Rails的新手。button_修复了我的问题。非常感谢!更新:4.1将button_与params参数一起发送到(获得了一个不允许嵌套参数的参数,即,其中参数实际上是使用隐藏字段构造的。这可能是您想要的。Neato…嗯,我的建议仍然支持过去的Rails,但很高兴看到他们终于找到了某种解决方案。