具有继承资源的嵌套对象

时间:2011-07-21 13:28:35

标签: ruby-on-rails json inherited-resources

首先,我喜欢inherited_resources

请考虑以下事项:

class Job < ActiveRecord::Base
  has_many :inputs, dependent: :destroy
  has_one :output
end

class JobsController < InheritedResources::Base
  respond_to :json
end

当我请求jobs / 1.json时,我只获取作业对象的JSON。我想要的还有要包含的输入和输出。我通常通过以下方式实现这一目标:

job.to_json(include: [:inputs,:output])

我的问题是用IR实现这一目标的最佳方法是什么?现在,我只是覆盖show,但我想知道是否有更优雅的方式?

谢谢!

1 个答案:

答案 0 :(得分:5)

@corroded让我走上正轨。答案是在模型上覆盖as_json。

具体来说,我做了以下事情:

  public

  def as_json(options={})
    super(include: [:inputs,:output])
  end