【发布时间】:2016-03-21 05:56:29
【问题描述】:
我的问题完全基于这 3 种方法对性能的影响。我需要知道哪种方法最适合手头的任务。
我需要为一组特定的记录呈现 json。
我目前使用的方法是
result = User.all.map{ |u| { name: u.name, id: u.id } }
您可能知道,这将遍历 Activerecord 对象,并且对于大量记录而言,这将具有非常低的性能。
另一种方法是使用 pluck。
result = User.all.pluck(:name,:id).map{ |u| { name: u[0], id: u[1] } }
性能可能要好得多,但代码看起来很臭。
如果我们将 as_json 覆盖为仅包含必要的参数,则使用 as_json 也可以实现相同的效果,但我需要知道这是否也会遍历 activerecord 对象。
如果有任何其他方法可以提供更好的性能,请随意说。
【问题讨论】:
-
你能添加一个数据库后端吗?
标签: ruby-on-rails ruby activerecord