redirect_to上的Ruby on Rails POST参数

我必须在我网站上的一个控制器中调用另一个URL。 问题是,对于所有参数,其他站点需要我溢出url。 无论如何从控制器调用另一个url并使用POST发送所有参数?

我不期待其他网站的回复。 此外,我认为使用Net :: HTTP库有一种方法可以做到这一点,我想我不知道如何。

谢谢

您无法在HTTP规范中同时执行重定向和发送POST数据。 重定向是通过发送一个简单的Location: otherlocation.html标头来实现的。 POST数据不适合该系统的任何位置。

您是否希望用户转到此页面,或者您是否只想将数据发送到应用程序? 如果要发送数据而不是将用户发送到那里,请使用Ruby的Net :: HTTP模块。 如果要发送用户,可能会强制您输出带有表单的视图,并使用Javascript自动提交。 (不要忘记通过在noscript标签中提供提交按钮来优雅地降级。)

这是来自ruby文档 :

 require 'net/http' require 'uri' result = Net::HTTP.post_form(URI.parse('http://www.example.com/search.cgi'), {'q'=>'ruby', 'max'=>'50'}) 

正如您所看到的,您可以将params作为一个方便的哈希传递,而不像其他语言会让您搞乱http格式。