2010-02-02 37 views
8

有没有办法捕获查询字符串并将其作为表单帖子的一部分发送?我使用Rails 2.3.5,我的用户在一个拥有多个查询字符串参数的页面上。在此页面上,他们将提交一份表格。在接收帖子的动作中,我想知道那些查询字符串参数是什么。显然,它们不是作为帖子的一部分发送的。所以我需要实际的表单值,加上用户提交表单时页面上的查询字符串参数。发送查询字符串参数作为表单帖子的一部分

我敢肯定,我可以写一些讨厌的JavaScript,将查询字符串推到窗体上隐藏的字段,所以他们将可用,但这似乎是丑陋的。我的谷歌搜索没有太多,这让我想知道我是否只是在全力以赴。更糟糕的是,我是Rails的新手。

欣赏任何指针或想法让我走向正确的方向。

回答

9

我的一个朋友告诉我什么,我相信这是一个简单的方法:

<% form_tag params.merge(:action=>"someAction") do %> 

合并PARAMS到必要作出的form_tag奏效了完美的哈希值。

+0

是的,这是更好的,因为它实际上创建url查询字符串 – jpwynn 2012-07-28 22:08:39

+0

请注意:浏览器会忽略GET请求的查询字符串,在这种情况下,您将不得不为每个输入创建隐藏字段。 – fny 2013-02-07 06:39:05

+3

澄清@faraz的声明:浏览器在使用GET方法提交的表单中忽略** action ** URL中的查询字符串 – 2013-05-23 18:48:36

5

首选的方法是使用隐藏字段。我还没有尝试过,但我认为你可以在*_path*_url助手中指定附加的查询字符串参数。喜欢的东西:

<% form_for(@post, 
      :url => post_path(@post, :foo => 'foo', :bar => 'bar')) do |f| %> 
    ... 
<% end %> 
+0

什么会做,如果我想用这个共享的形式编辑和创建行动? – Stiig 2016-09-22 11:58:43

0
<% form_tag params.merge(:action=>"someAction") do %> 

- 无路由匹配[POST]

相关问题