我希望/plan
方法返回一个json对象,该对象本身由另一个本地(但属于java中的另一个Web应用程序)URL返回(为了这个问题,我们称之为/plan2
) 。
我想要的不是重定向,而是让/plan
返回/plan2
返回的数据,我正在追加一堆其他数据键。由于请求是本地请求,使用Net::HTTP
是否过度杀伤?考虑到我还想发送HTTP Accept标头,我有什么选择。
答案 0 :(得分:1)
在黑暗中拍摄,但我假设/plan
属于公共Rails应用,而/plan2
是来自其他网络应用的网址(甚至可能不是Rails )在Rails应用程序可访问但不公开的同一服务器上。如果是这种情况,那么是的,您可以得到回复,但我建议OpenURI或Mechanize而不是Net::HTTP
。如果你把它放在respond_to
JSON格式块中,那么一切都应该没有Accept
标题。
答案 1 :(得分:0)
您是在谈论重新使用其他控制器方法的功能吗?
在rails中没有标准的方法。您可以将常用功能放入模块中并以这种方式包含它,或者如果功能位于另一个控制器中则使用继承。如果它是相同的控制器类,你可以调用该方法。
如果它是“私人”网址,您打算如何通过http调用它?!
答案 2 :(得分:0)
我建议封装任何功能/计划2使用,并简单地在/ 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