考虑以下情况,我有一个Job
类,它有输入和一个输出。我的工作中有以下内容.rb
def as_json(options={})
super(include: [:inputs,:output])
end
所以这一直很好用,我的JobController
已经完成了格式化和有用的JSON响应。
我正在开发一种向用户显示Job JSON版本的方法,只显示输入,所以我做了以下操作并得到了一些奇怪的行为:
@job.to_json(include: [:inputs])
此方法忽略传递给它的选项,并在模型上调用 as_json 方法
所以我的问题是,一旦你定义了 as_json ,你如何获得对象的不同json 视图?
谢谢!
答案 0 :(得分:0)
默认情况下,您可以尝试传递输出和输入:
def as_json( options = { :include => {:inputs, :output} } )
super(options)
end
然后您可以通过特殊情况的选项:
@job.as_json( :include => {:inputs} )
此处有更多信息:http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/