Ruby on rails 将查询字符串参数作为表单post的一部分发送

Ruby on rails 将查询字符串参数作为表单post的一部分发送,ruby-on-rails,Ruby On Rails,是否有方法捕获查询字符串并将其作为表单帖子的一部分发送?我使用的是Rails 2.3.5,我的用户所在的页面上有多个querystring参数。在这一页上,他们将提交一份表格。在接收帖子的操作中,我想知道那些querystring参数是什么。显然,它们不是作为邮件的一部分发送的。所以我需要实际的表单值,加上用户提交表单时页面上的querystring参数 我相信我可以编写一些糟糕的javascript,将查询字符串参数推到表单上的隐藏字段中,以便它们可用,但这看起来很难看。我的谷歌搜索结果不多,

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

我相信我可以编写一些糟糕的javascript,将查询字符串参数推到表单上的隐藏字段中,以便它们可用,但这看起来很难看。我的谷歌搜索结果不多,这让我怀疑我是不是完全搞错了。更糟糕的是,我是Rails新手


感谢任何能让我朝正确方向前进的建议或想法。

首选方法是使用隐藏字段。我没有尝试过,但我认为您可以在
*\u路径
*\u url
帮助程序中指定其他查询字符串参数。比如:

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

我的一位朋友向我展示了我认为更简单的方法:

<% form_tag params.merge(:action=>"someAction") do %>
“someAction”)执行%>
将参数合并到生成表单标记所需的哈希中,效果非常好。

“someAction”)do%>
<% form_tag params.merge(:action=>"someAction") do %>
-如果您使用的是
GET
请求,请使用
hidden\u field\u标签
。 在我们的例子中,我们使用了一个带有select的简单表单来设置分页的每页值。我们发现在提交此表单时已清除任何现有的GET参数。为了解决这个问题,我们在表单中使用了
hidden\u field\u标签
s

在表单内部,只需为现有的
GET
参数设置
hidden_field_标记
,如下所示:

form_content = request.query_parameters.collect do |key, value|
  hidden_field_tag key, value
end

这将确保现有参数保持不变。

是的,这更好,因为它实际上创建了url QueryString注意:浏览器忽略GET请求的查询字符串,在这种情况下,您必须为每个输入创建隐藏字段。为了澄清@faraz的陈述:对于使用GET方法提交的表单,浏览器忽略操作URL中的查询字符串。如果我想将此用于共享表单的编辑和创建操作,该怎么办?