0

众所周知,如果我们有这样的模型:

class TMem < ActiveRecord::Base
   def expense
     return 'OK'
   end 
end

该表t_mems没有该字段expense

但是我们可以访问控制器中的字段:

TMem.find(1).expense

但是如果一个动作返回一个 json:

render json:  TMem.find(1)

我无法expense从 ajax 请求中获取该字段。它表明,响应 json 不包含该字段。

所以我想知道如何查询模型,以便我可以从 ajax 请求中获取该字段。

4

1 回答 1

0

您需要to_json使用自定义方法在模型中覆盖

改变你的模型

class TMem < ActiveRecord::Base
   def expense
     return 'OK'
   end 

   def to_json(options={})
     options[:methods] ||= [:expense]
     super(options)
   end

end

现在如果你打电话to_json

TMem.first.to_json  #=> "{\"t_mem\":{\"id\":1,\"expense\":"OK\"}}"
于 2013-11-07T05:32:30.860 回答