RoR:使用原始表单数据POST到页面。怎么样?

时间:2010-10-28 17:42:44

标签: ruby-on-rails html-form http-post

是否有一种ruby方法来POST这里以“x-www-form-urlencoded”编码的表格数据? http://www.w3.org/MarkUp/html-spec/html-spec_8.html

我知道Net :: HTTP.post_form,但因为我有几个值要发布哪个共享相同的名称,所以我不能使用该方法所需的哈希值。

为了澄清,我有一个形式为“value1 = x& value1 = y& value1 = z& value2 = a& value3 = b”的字符串,我希望能够将其发布到另一个页面。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

我认为内部params对象是http请求中实际原始帖子正文的解析版本。所有发布数据都以相同的方式发布(作为原始发布数据),但ActionController中的params散列已经将其解析为易于使用的散列。如果您确实需要表单中的原始发布数据,则可以通过请求对象本身的raw_post方法访问它。

这里的ActionController::Request.raw_post documentation适用于rails3,但至少可以使用2.3.8(我检查过的唯一的2.3.x版本)。我认为它很可能比这更长。

在控制器中,尝试self.request.raw_post将原始发布数据作为字符串获取。

答案 1 :(得分:0)

你能否拥有一个数组的哈希值?我认为这是通常处理具有相同名称的参数的方式。