Ruby on rails 从ajax请求访问Rails模型字段

Ruby on rails 从ajax请求访问Rails模型字段,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我们知道,如果我们有这样一个模型: class TMem < ActiveRecord::Base def expense return 'OK' end end 但如果操作返回json: render json: TMem.find(1) 我无法从ajax请求中获取expense字段。这表明,响应json不包含该字段 因此,我想知道如何查询模型,以便从ajax请求中获取此字段。您需要使用自定义方法在模型中覆盖到\u json 像这样改变你的模型 class

我们知道,如果我们有这样一个模型:

class TMem < ActiveRecord::Base
   def expense
     return 'OK'
   end 
end
但如果操作返回json:

render json:  TMem.find(1)
我无法从ajax请求中获取
expense
字段。这表明,响应json不包含该字段


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

您需要使用自定义方法在模型中覆盖
到\u json

像这样改变你的模型

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

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

end

我找到了答案,只需
呈现json:TMem.find(1).to_json(:methods=>:expense)
class TMem < ActiveRecord::Base
   def expense
     return 'OK'
   end 

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

end
TMem.first.to_json  #=> "{\"t_mem\":{\"id\":1,\"expense\":"OK\"}}"