我正在開發一個簡單的API。我有這樣的模型publisher has_many products
和products belongs_to publisher
。目前我正在顯示所有產品,包括他們的每個發佈者的詳細信息。現在我想要將發佈者詳細信息作爲單獨的資源(我不想在第一個請求中顯示發佈者詳細信息),換句話說,在json輸出中有一個屬性將帶有一個鏈接到發佈商的詳細信息。我該怎麼做?如果任何人有更復雜的API開發示例代碼,你已經完成了,請與我分享,因爲我想了解更多。非常感謝。這是我的。用to_json自定義Rails rest API中的json輸出
的ProductsController
respond_to :json, :xml
def index
@products=Product.paginate(:page=>params[:page],:per_page => params[:per_page]).all(:include => :publisher)
respond_to do |format|
format.json { render json: @products.to_json(
:include=>:publisher) }
format.xml
end
end
JSON輸出
[
{
"category_id": null,
"created_at": "2011-03-25T13:35:16Z",
"details": "Molestias pariatur consequuntur ut voluptas aperiam facere et et autem ad laudantium ut qui dolorem iste sit ut in dignissimos. Et debitis et et sunt quidem qui est est et",
"id": 1,
"product_name": "Velit",
"publisher_id": 1,
"updated_at": "2012-11-12T18:45:13Z",
"publisher": {
"created_at": "2012-11-12T18:45:13Z",
"email": "[email protected]",
"id": 1,
"password": "Madelyn Parker",
"password_confirmation": null,
"publisher_id": null,
"updated_at": "2012-11-12T18:45:13Z"
}
}]
我喜歡acts_as_api – apneadiving
謝謝你,但我想用傳統的做to_json。 – katie
然後使用as_json – apneadiving