代码之家  ›  专栏  ›  技术社区  ›  cbrulak

RubyonRails:链接到使用post方法,但参数在URL中

  •  12
  • cbrulak  · 技术社区  · 14 年前

    我在用

    link_to 'My link', path(:arg1 => session[:arg1], :arg2 => session[:arg2],:arg3 => anyobject.id), :method => :post
    

    但是正在生成的HTML链接包括(arg1、arg2、arg3)as URL 查询参数。

    如何移除它们?我是否错过了文档中的某些内容?

    2 回复  |  直到 10 年前
        1
  •  25
  •   Taryn East    10 年前

    link_to 将始终将参数放入查询字符串,因为它正在创建一个get-style html链接-即使 :method => :post 这只是附加了一个额外的(“特殊”)论点 _method .

    我认为你真正想要的是 button_to 链接-这将使它成为一种形式的帖子。它的工作原理是一样的,但它说 纽扣 相反(例如, button_to 'My link', path(:params => :go_here) . 缺点是它看起来像一个按钮。但是你可以给它一个CSS类(如“unbutton”),然后改变这个CSS类的样式,使它看起来不像一个按钮。

    或者,如果你真正想要的是没有 params 传给了管制员…那么在创建链接时不要包含它们(例如, link_to "My link" path -没有必要 :post 如果你不想发布任何 帕拉姆 )

    最后,如果你想要的是 帕拉姆 成为URL的一部分(例如, stuff/[param_1]/more_stuff/[param_2] 等等),然后您需要更新您的路由,以将这些参数作为选项包括进来。查看的路由部分 rdoc 如何做到这一点。

        2
  •  -1
  •   Eric Guo    10 年前

    您可以使用下面的代码, rails.js 需要数据方法在Ajax中切换到Post模式。

    <%= link_to '<button id="print" type="submit" class="btn">Print</button>'.html_safe, { controller: :lots, id: @lot.containername, action: "print_#{print_template}", remote: true }, {'data-method' => :post} %>