2010-10-28 35 views
3

在這裏指定的「x-www-form-urlencoded」編碼的POST表單數據是否有ruby方法? http://www.w3.org/MarkUp/html-spec/html-spec_8.htmlRoR:使用原始表單數據POST到頁面。怎麼樣?

我知道Net :: HTTP.post_form,但因爲我有幾個值來發布共享相同的名稱,我不能使用該方法所需的散列。

爲了澄清,我有以下形式的字符串「值1 = X &值1 = Y &值1 = Z &值2 =一個&值3 = B」,我希望能夠將它發送到另一個頁面。我怎樣才能做到這一點?

回答

0

你能夠有一個哈希值是一個數組?我認爲這是通常處理具有相同名稱的參數的方式。

+0

我已經嘗試過,但我可能做得不正確,因爲我是Ruby的新手。你能提供一段示例代碼嗎? – bsirang 2010-10-28 17:51:07

+0

當我嘗試使用像這樣的散列:myHash = {key => [「value1」,「value2」,「value3」]}它似乎後值爲「value1value2value3」。難道我做錯了什麼? – bsirang 2010-10-28 18:06:18

1

我認爲內部params對象是http請求中的實際原始帖子正文的解析版本。所有發佈數據都以相同的方式發佈(與原始發佈數據相同),但ActionController中的參數哈希已將其解析爲易於使用的哈希。如果您確實需要表單中的原始發佈數據,則可以通過請求對象本身的raw_post方法來訪問它。

這裏的ActionController::Request.raw_post documentation用於rails3,但至少從2.3.8(我檢查的唯一的2.3.x版本)開始可用。我認爲最有可能的時間比這更長。

在控制器中,嘗試使用self.request.raw_post將原始發佈數據作爲字符串獲取。

+0

我不想獲取發佈到RoR頁面的數據。我試圖將數據發佈到外部頁面。 – bsirang 2010-10-28 20:30:22

相關問題