我开始使用gem 'active_model_serializers','~> 0.10.0'
。遵循this文档
用于实施。
我有以下关系。
landmark has_many concerns
concern belongs_to landmark
concern has_many comments
我在ApplicationSerializer
创建了一个app/serializers/api/application_serializer.rb
module API
class ApplicationSerializer < activeModel::Serializer
# some commode here
end
end
我的care_serializer包含:
# ===> Does not work <=====
module API::V1
class ConcernSerializer < ApplicationSerializer
attributes :id,:body
has_many :comments
belongs_to :landmark
class CommentSerializer < ApplicationSerializer
attributes :id,:body
end
class LandmarkSerializer < ApplicationSerializer
attributes :id,:short_address
end
end
end
# ====> However,this works <====
module API::V1
class ConcernSerializer < ApplicationSerializer
attributes :id,:body
has_many :comments
class CommentSerializer < activeModel::Serializer
attributes :id,:body
end
end
end
# ===> Does not work again<=====
module API::V1
class ConcernSerializer < ApplicationSerializer
attributes :id,:body
has_many :comments
belongs_to :landmark
class CommentSerializer < activeModel::Serializer
attributes :id,:body
end
class LandmarkSerializer < activeModel::Serializer
attributes :id,:short_address
end
end
end
在上面的代码中,如果我将ApplicationSerializer
替换为activeModel::Serializer
可以正常工作,但是我丢失了ApplicationSerializer
中定义的通用代码。