在respond_with哈希中包含虚拟属性

pri*_*ry0 11 ruby activerecord ruby-on-rails ruby-on-rails-3

我试图在respond_to JSON哈希中包含一个虚拟属性/方法.

模型(employee.rb)

attr_reader :my_method

def my_method
  return "foobar"
end
Run Code Online (Sandbox Code Playgroud)

控制器(employees_controller.rb)

respond_to :json

def index
  @employees = Employee.all
  respond_with(:data => @employees, :total => Employee.all.count)
end
Run Code Online (Sandbox Code Playgroud)

重要的是,我将"数据"作为"雇员"集合的json根,并在散列中包含"total".这很有效,并返回所有员工和总价值的良好JSON结果.

我的问题是:如何在JSON响应中为员工哈希中的每个员工包含虚拟属性"my_method"?

谢谢你的时间!

pri*_*ry0 16

这对我有用.

Employee.rb

def as_json(options={})
  super.as_json(options).merge({:my_method => my_method})
end
Run Code Online (Sandbox Code Playgroud)

感谢cmason指出我正确的方向.欢迎任何其他解决方案.

  • 有一个语法错误.它是:super.as_json(options).merge({:my_method => my_method}) (2认同)