Rails rails 返回 json 格式的数据时在列表里新加一个属性

nancy · 2012年08月04日 · 最后由 edokeh 回复于 2012年08月04日 · 9008 次阅读

现在是这样: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 列表里每条记录都要统计该记录下关联表中数据的个数,他们是一对多关系,有好的方法处理吗?

#8 楼 @fresh_fish 谢谢!我先看看

以前 rails2 的时候我记得 to_json 方法有很多参数的,刚才看了下 rails3 的 api 好像不见了 那就看这里吧http://stackoverflow.com/questions/3719041/how-to-customize-to-json-response-in-rails-3

需要 登录 后方可回复, 如果你还没有账号请 注册新账号