2012-07-14 30 views
0

我想要一個/plan方法返回本身由另一本地(但屬於Java中另一個Web應用程序)URL返回的json對象(爲了解決此問題,我們將其稱爲/plan2) 。使Rails返回來自其他本地URL的響應

我想要的不是一個重定向,但真正有/plan返回數據因爲它是由/plan2返回,對此我追加了一堆其他密鑰。由於請求是本地的,會使用Net::HTTP是矯枉過正?考慮到我還想發送一個HTTP Accept頭,我有什麼選擇。

回答

1

拍攝在黑暗中在這裏,但我假設/plan屬於公共Rails應用程序,而/plan2是另一個網絡應用程序的網址(可能甚至不是Rails)在Rails應用程序可訪問的同一服務器上,但不公開提供。如果是這種情況,那麼是的,你可以得到答覆,但我會建議,而不是Net::HTTP,而不是OpenURIMechanize。如果你把它放在respond_to JSON格式的塊中,那麼一切都應該沒問題,Accept頭也是。

+0

結束了使用OpenURI,謝謝! – samvermette 2012-07-24 05:04:10

+0

很高興我能幫到你。 – 2012-07-24 10:06:16

0

你是否在談論重新使用另一種控制器方法的功能?

在rails中沒有這樣做的標準方法。您可以將通用功能放入模塊中並以這種方式包含它,或者在功能位於另一個控制器中時使用繼承。如果它是相同的控制器類,則可以調用該方法。

如果它是一個「私人」的網址,你打算怎樣通過http調用它?

0

我會建議任何封裝功能/計劃2用途和簡單的重複使用,在/計劃1

但如果你只是想獲得它的工作...

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