我有一个自定义模型“Result”,如下所示,其属性组和类别是具有id,created_at,updated_at的活动记录模型。
class Result
attr_accessor :groups, :categories
end
当在Result对象上调用to_json时:除了[:id,:created_at,:updated_at]方法对组和类别没有影响,构造的JSON输出包含id,created_at和updated_at。
请帮助我构建适当的条件to_json以获取没有id,created_at,updated_at的JSON输出组和类别。
示例:
result = Result.new
result.groups = groups
result.categories = categories
result.to_json(:include => {
:groups => {:except => [:id, :created_at, :updated_at]},
:categories => {:except => [:id, :created_at, :updated_at]}
})
答案 0 :(得分:3)
序列化时不会考虑to_json
中的这些陈述。
根据this页面,为了使这些:exclude, :include, :only
语句有效,您必须执行以下操作(因为您没有扩展ActiveRecord::Base
):
class Result
include ActiveModel::Serializers::JSON
attr_accessor :groups, :categories
def attributes
{'groups' => groups, 'categories' => categories}
end
end
同样适用于groups
和categories
中的课程。