我在限制活動模型資源中序列化的關聯級別時遇到了問題。有源模型串行器中的限制關聯級聯
例如:
一個遊戲中有很多球隊那裏有很多玩家
class GameSerializer < ActiveModel::Serializer
attributes :id
has_many :teams
end
class TeamSerializer < ActiveModel::Serializer
attributes :id
has_many :players
end
class PlayerSerializer < ActiveModel::Serializer
attributes :id, :name
end
當我取回JSON的團隊,它包括根據需要在子陣列中的所有玩家。
當我檢索遊戲的JSON時,它包含了一個子陣列中的所有團隊,非常出色,但也包含了每個團隊的所有玩家。這是預期的行爲,但可以限制關聯的級別嗎?有沒有玩家的遊戲只會返回序列化的團隊?
'object.association(:comments).loaded?'這正是我期待的,謝謝!我認爲這種方法比接受的答案更清潔。從active_model_serializer docs推薦使用包含在控制器中的連接或包含的關聯來避免n + 1個查詢。在哪裏我被難倒在序列化器中如何確定一個關聯是否被加載或忽略它。 從文檔: 「嘗試通過確保數據以最佳方式加載來避免n + 1查詢,例如,如果您使用的是ActiveRecord,則可能需要根據需要使用查詢包含或連接」 – Mark 2013-10-28 07:59:04
我必須致電include_comments?方法? – Kaspar 2014-12-08 15:21:45