2014-09-03 100 views
0

我在軌道上做了紅寶石的API。我有2個方法返回json中的資源。這兩個資源之間沒有任何關係。我想要做的是構建一個方法來在一個請求中返回這2個資源。在不損害寧靜原則的情況下,做到這一點的最佳方式是什麼?我應該保持這種方式嗎?Rails restful api與返回多個資源的方法

編輯

我的文件來解釋自己更好。

的routes.rb

resources :cities, only: [:index] 
resources :products, only: [:index] 

cities_controller.rb

class CitiesController < ApplicationController 

    respond_to :json 

    def index 
    @cities = City.all 
    render :json => @cities 
    end 

end 

products_controller.rb

class ProductsController < ApplicationController 

    respond_to :json 

    def index 
    @products = Product.all 
    render :json => @products 
    end 

end 

我應該創建第三個控制器和路由在一個獲得此兩種資源一起JSON?這是更好的方法嗎?

回答

0

假設有一個很好的理由,這些2個資源應在相同的請求提交,你可以使它們在這樣的格式:

{ 
    "rabbit" => { ... }, 
    "mouse" => { ... } 
} 
+0

我的理由是,因爲移動應用將會使用這個API。它將同時獲得這些信息。所以,我需要做這樣的事情來做一個請求,而不是兩個。但我的問題不是關於json格式,而是設置這條路線和方法而不損害寧靜模式的最佳方式。我不知道是否有任何軌道或​​寧靜的慣例做這樣的事情。 – 2014-09-03 19:08:57

+0

@WilliamWeckl如果你更具體一些(你在什麼時間加載了哪些數據),它會有所幫助,但這聽起來有點像你正在將一些數據預加載到應用程序中。在這種情況下,我相信通過API操作獲得更具體的內容是有意義的,並且遠離「資源」思維模式,因爲它不是面向資源的請求。例如,如果您正在預加載帳戶視圖的帳戶詳細信息,請致電它類似於「/ path/to/api/v1/preload_account」幷包含所有必要的數據。 – animatedgif 2014-09-03 19:13:46

+0

我現在正在編輯我的問題,以便更清楚。 – 2014-09-03 19:18:15