2010-02-02 113 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]

相關問題