0
具有以下實體,租金及地區:如何連接使用Rails 4生成JSON的表?
class Rent < ActiveRecord::Base
belongs_to :region
validates :region, presence: true
end
class Region < ActiveRecord::Base
has_many :rents
end
爲了得到一個租對象是簡單的做了以下內容:
def show
rent = Rent.find(params[:id])
render json: rent
end
這將成功地返回租金:
{
"id": 1,
"title": "blah",
"region_id": 1,
"created_at": "2014-12-16T04:09:00.407Z",
"updated_at": "2014-12-16T04:09:00.407Z"
}
現在,我想加入該地區的這一成果。該理想的結果將類似於此:
{
"id": 1,
"title": "blah",
"region_id": 1,
"created_at": "2014-12-16T04:09:00.407Z",
"updated_at": "2014-12-16T04:09:00.407Z"
"region": {
"id": 1,
"title": "blah",
"created_at": "2014-12-16T04:09:00.507Z",
"updated_at": "2014-12-16T04:09:00.507Z"
}
}
爲了做到這一點,官方RoR documentation提到使用join
條款應該解決這個問題。所以這就是我所做的:
def show
rent = Rent.joins(:region).find(params[:id])
render json: rent
end
不幸的是,這最後一次狙擊的結果是完全一樣的,通過它自己獲得租金。 JSON響應中沒有包含region
對象。
我在做什麼錯,我應該怎麼做呢?
哇,這就像一個魅力工作!請告訴我更多關於它的信息,它是如何工作的以及任何與ror文檔相關的鏈接:) – Lucio
http://apidock.com/rails/ActiveRecord/Serialization/to_json官方文檔位於此處,顯示您可以使用的選項包括這一個。也可以看看這個博客http://www.tigraine.at/2011/11/17/rails-to_json-nested-includes-and-methods –
你可能會發現有用的其他東西是「僅」,只顯示數據字段您需要使用JSON和「方法」,以便您可以在模型中包含方法的輸出 –