Make Rails从其他本地URL返回响应

时间:2012-07-14 09:25:32

标签: ruby-on-rails ruby routing

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

我想要的不是重定向,而是让/plan返回/plan2返回的数据,我正在追加一堆其他数据键。由于请求是本地请求,使用Net::HTTP是否过度杀伤?考虑到我还想发送HTTP Accept标头,我有什么选择。

3 个答案:

答案 0 :(得分:1)

在黑暗中拍摄,但我假设/plan属于公共Rails应用,而/plan2是来自其他网络应用的网址(甚至可能不是Rails )在Rails应用程序可访问但不公开的同一服务器上。如果是这种情况,那么是的,您可以得到回复,但我建议OpenURIMechanize而不是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