我的一个控制器中有以下代码;
render :json => Article.order("ID Desc").limit(3)
输出一系列文章,如:
[{"id":1, "content":"Blah"},{"id":2, "content":"Blah"}, {"id":3, "content":"Blah"}]
我想要做的就是为每个模型添加count
属性。所以它会是这样的:
[{"id":1, "content":"Blah", "count":3},{"id":2, "content":"Blah", "count":1}, {"id":3, "content":"Blah", "count":6}]
无论如何在我的控制器中执行此操作而不覆盖as_json
方法?
我在另一个问题中看到了一个merge
方法,所以我尝试了这个:
render :json => Article.order("ID Desc").limit(3).merge(:count => 2)
没有运气。
答案 0 :(得分:1)
你最好自己处理这个json,但不是to_json
方法(Arrays或active_record)
articles = Article.order("ID Desc").limit(3)
render :json => articles.map { |article|
{
:id => article.id,
:content => article.content,
:count => 3 # or 2 or 1
}
}