有没有办法捕获查询字符串并将其作为表单帖子的一部分发送?我正在使用Rails 2.3.5,我的用户位于具有多个查询字符串参数的页面上。在此页面上,他们将提交表单。在收到帖子的动作中,我想知道那些查询字符串参数是什么。显然,他们不是作为帖子的一部分发送的。所以我需要实际的表单值,以及用户提交表单时页面上的查询字符串参数。
我确信我可以编写一些令人讨厌的javascript,它会将查询字符串params推入表单上的隐藏字段,以便它们可用,但这看起来很难看。我的谷歌搜索没有发现太多,这让我想知道我是否只是把这一切都搞错了。更糟糕的是,我是一个Rails新手。
欣赏任何指示或想法,让我朝着正确的方向前进。
答案 0 :(得分:9)
我的一位朋友向我展示了我认为更简单的方法:
<% form_tag params.merge(:action=>"someAction") do %>
将params合并到使form_tag成为必要的哈希值时完美无缺。
答案 1 :(得分:5)
首选方法是使用隐藏字段。我没有尝试过,但我认为您可以在*_path
或*_url
帮助程序中指定其他查询字符串参数。类似的东西:
<% form_for(@post,
:url => post_path(@post, :foo => 'foo', :bar => 'bar')) do |f| %>
...
<% end %>
答案 2 :(得分:0)
<% form_tag params.merge(:action=>"someAction") do %>
- 没有路线匹配[POST]
答案 3 :(得分:0)
hidden_field_tag
请求,请使用GET
。在我们的例子中,我们使用的是一个简单的表单,该表单带有一个用于设置每页分页值的选项。我们发现,提交此表单时,所有现有的GET参数都已清除。为了解决这个问题,我们在表单中使用了hidden_field_tag
。
在表单内部,只需为现有hidden_field_tags
参数设置GET
,如下所示:
form_content = request.query_parameters.collect do |key, value|
hidden_field_tag key, value
end
这将确保您现有的参数持续存在。