2010-10-28 50 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

相关问题