0

我想要一个/plan方法来返回一个json对象,该对象本身由另一个本地(但属于java中的另一个Web应用程序)URL返回(/plan2为了这个问题,我们称之为)。

我想要的不是重定向,而是真正返回/plan返回的数据,我在其中附加了一堆其他键。由于请求是本地的,因此使用会过分吗?考虑到我还想发送一个 HTTP Accept 标头,我有什么选择。/plan2Net::HTTP

4

3 回答 3

1

在这里在黑暗中拍摄,但我假设它/plan属于公共 Rails 应用程序,并且是来自 Rails 应用程序可访问但不公开可用的同一服务器上的另一个 Web 应用程序(甚至可能不是 Rails)/plan2的 URL 。如果是这种情况,那么是的,您可以获得响应,但我建议您使用 OpenURIMechanize而不是. 如果你把它放在JSON 格式块中,那么标题也应该没问题。Net::HTTPrespond_toAccept

于 2012-07-14T13:42:10.247 回答
0

我建议封装 /plan2 使用的任何功能,并简单地在 /plan1 中重新使用它

但如果你只是想让它工作......

class PlanController < ApplicationController
  def plan1
    plan2(extra_parameter_1: true, extra_parameter_2: 'hello')
  end

  def plan2(extra = {})
    params.merge!(extra)

    # Whatever your code was before...
  end
end
于 2012-07-14T12:08:09.380 回答
0

你是说重用另一个控制器方法的功能吗?

在rails中没有这样做的标准方法。您可以将通用功能放入模块中并以这种方式包含它,或者如果该功能位于另一个控制器中,则使用继承。如果它是同一个控制器类,你可以调用该方法。

如果它是一个“私人”网址,你将如何通过 http 调用它?!

于 2012-07-14T10:06:34.030 回答