2011-12-12 64 views
0

我們有2個Rails應用程序。一個從數據庫返回JSON,另一個是使用第一個應用程序作爲數據訪問的客戶端。但是,它太慢了。所以我們正在尋找替代品。將來,還會有其他客戶端使用返回JSON的應用程序,這就是我們將其分開的原因。Rails應用程序的視圖是否有可能從另一個應用程序擁有控制器?

這聽起來很瘋狂,但我想知道是否有可能爲一個Rails應用程序的視圖從另一個應用程序有一個控制器?

+0

你的意思是Rails應用程序?你爲什麼要問?你必須解釋一些。你的問題沒有太大意義。 – Mischa

+0

嗨,是的,它是一個軌道應用程序。基本上,我們有2個應用程序,一個從數據庫返回JSON,另一個是使用第一個應用程序作爲數據訪問的客戶端。但是,它太慢了。所以我們正在尋找替代品。 –

+0

未來,還會有其他客戶端使用返回JSON的應用程序,這就是我們將其分開的原因。 –

回答

1

從其他應用程序中使用控制器是不可能的。根據你的意見,我認爲你應該有一個應用程序返回json或html。 Rails已經爲此提供了功能。例如: -

的Rails 3.0:

class UsersController < ApplicationController 
    def index 
    @users = User.all 
    respond_to do |format| 
     format.html 
     format.xml { render :xml => @users } 
     format.json { render :json => @users } 
    end 
    end 
end 

的Rails 3.1:

class UsersController < ApplicationController 
    respond_to :html, :xml, :json 

    def index 
    @users = User.all 
    respond_with(@users) 
    end 
end 

來源:Embracing REST with mind, body and soul

+0

謝謝米莎。其實,這就是我們現在正在做的事情。我們用JSON格式化我們的退貨。作品完美無瑕。 但是,另一個Rails應用程序正在使用第一個應用程序(返回JSON的應用程序),它基本上是一個Web客戶端。我們覺得它很慢。 我們之所以將它們分爲兩個應用程序,是因爲將來會有其他客戶端將第一個應用程序用作某種公共API。 –

+0

@jhoeforth - 我看到你的問題。您不想爲每個新客戶端複製您的控制器代碼。它可能是一種解決方案,將控制器代碼提取到gem中,並在每個新應用程序中使用該gem。除此之外,我無法想到任何事情。 – Mischa

+0

抱歉,問題現在關閉。你的解釋我認爲它不應該被關閉。 – Mischa

相關問題