2

我有一个自定义模型“结果”,如下所示,其中在其属性组和类别中是具有 id、created_at、updated_at 的活动记录模型。

class Result
  attr_accessor :groups, :categories
end

当对 Result 对象使用 :except[:id, :created_at, :updated_at] 方法在组和类别上调用 to_json 时,没有效果,构造的 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]}
})
4

1 回答 1

3

您在序列化时所拥有的这些陈述都没有to_json被考虑在内。

根据页面,为了使这些: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

于 2012-05-29T11:21:41.257 回答