RoR Non ActiveRecord模型to_json:除了不工作

时间:2012-05-29 10:32:43

标签: ruby ruby-on-rails-3

我有一个自定义模型“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]}
})

1 个答案:

答案 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

同样适用于groupscategories中的课程。