1
我目前使用Rails編寫了一個API。在觀看關於ActiveModel :: Serializer的RailsCast之後,我想嘗試一下。ActiveModel :: Serializer中的Belongs_to關聯從JSON中移除根
簡短地回顧了我目前的車型:
class Club < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
validates :userName, presence: true
belongs_to :club
end
創建用戶返回以下JSON:
{"id":1,"userName":"Test","firstName":"Test","lastName":"Test","created_at":"2014-10- 10T12:42:12.186Z","updated_at":"2014-10-10T12:42:12.186Z","city":"Test","street":"Test","mail":"Test","club_id":1}
誠如加載ActiveModel ::串行頁我實現了UserSerializer如下的例子:
class UserSerializer < ActiveModel::Serializer
attributes :id, :userName, :firstName, :lastName, :mail, :street, :city, :club_id
end
這確實添加了「用戶」:作爲根到我的JSON fo RMAT。此外,該示例顯示向串行器添加
belongs_to :club
。但是,如果我添加belongs_to,我不會得到「用戶」:作爲我的JSON的根。這是預期的行爲?有沒有辦法改變這個? 經過附加測試後,似乎「user」:root元素是隨機的--did沒有找到尚未添加或省略的模式。
我試圖
root: true
添加到我的users_controller這沒有幫助。
你有沒有嘗試在'User'模型中使用'self.include_root_in_json = true'? – 2014-10-10 13:53:06
是的,這是有效的。但我仍然想解決問題根源的錯誤。由於串行器應該具有一致的行爲並且不會隨機更改。謝謝! – Deutro 2014-10-10 14:06:40