我想要一个/plan
方法来返回一个json对象,该对象本身由另一个本地(但属于java中的另一个Web应用程序)URL返回(/plan2
为了这个问题,我们称之为)。
我想要的不是重定向,而是真正返回由/plan
返回的数据,我在其中附加了一堆其他键。由于请求是本地的,因此使用会过分吗?考虑到我还想发送一个 HTTP Accept 标头,我有什么选择。/plan2
Net::HTTP
我想要一个/plan
方法来返回一个json对象,该对象本身由另一个本地(但属于java中的另一个Web应用程序)URL返回(/plan2
为了这个问题,我们称之为)。
我想要的不是重定向,而是真正返回由/plan
返回的数据,我在其中附加了一堆其他键。由于请求是本地的,因此使用会过分吗?考虑到我还想发送一个 HTTP Accept 标头,我有什么选择。/plan2
Net::HTTP
在这里在黑暗中拍摄,但我假设它/plan
属于公共 Rails 应用程序,并且是来自 Rails 应用程序可访问但不公开可用的同一服务器上的另一个 Web 应用程序(甚至可能不是 Rails)/plan2
的 URL 。如果是这种情况,那么是的,您可以获得响应,但我建议您使用 OpenURI或Mechanize而不是. 如果你把它放在JSON 格式块中,那么标题也应该没问题。Net::HTTP
respond_to
Accept
我建议封装 /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
你是说重用另一个控制器方法的功能吗?
在rails中没有这样做的标准方法。您可以将通用功能放入模块中并以这种方式包含它,或者如果该功能位于另一个控制器中,则使用继承。如果它是同一个控制器类,你可以调用该方法。
如果它是一个“私人”网址,你将如何通过 http 调用它?!