现在是这样:format.json { render :json => @user } 返回 [ {"id":1,"name:"aaa"}, {id":2,"name:"abb"} ] 现要在 user 里加个 count 字段,不是 user 本身的属性 [ {"id":1,"name:"aaa","count":2}, {id":2,"name:"abb","count":3} ]
怎么写 json 返回串?
render :text => { :id => @user.id, :name => @user.name, :count => @user.sth.count }.to_json
#1 楼 @fresh_fish 嗯,这样也行,实际上@object有很多字段, 我能像 render :json => @user这样,一句话实现呢 并且是一个列表,不是一条记录
写个 helper merge 个虚拟属性
看这个 count,似乎是一个递增的计数?如果是这样的话,server 段 JSON 不用包含这个属性,客户端自己处理就行吧。
#3 楼 @reducm reducm 能说说怎么写么?
建议用 jBuilder
#4 楼 @daqing 列表里每条记录都要统计该记录下关联表中数据的个数,他们是一对多关系,有好的方法处理吗?
#7 楼 @nancy count_cache 呀
#8 楼 @fresh_fish 谢谢!我先看看
以前 rails2 的时候我记得 to_json 方法有很多参数的,刚才看了下 rails3 的 api 好像不见了 那就看这里吧http://stackoverflow.com/questions/3719041/how-to-customize-to-json-response-in-rails-3
找到了,api 看这里http://apidock.com/rails/ActiveRecord/Serialization/to_json