我的问题纯粹基于3种方法的性能影响。我需要知道哪种方法最适合手头的任务。
我需要为特定的一组记录渲染json。
我目前使用的方法是
Familial Non-VHL Clear Cell Renal Cancer;Birt-Hogg-Dub-> Syndrome
如您所知,这将循环通过Activerecord对象,这对于大量记录的性能非常低。
替代方法是使用pluck。
result = User.all.map{ |u| { name: u.name, id: u.id } }
性能可能要好得多,但代码看起来很臭。
如果我们覆盖as_json只包含必要的参数,那么使用as_json可以实现同样的效果,但我需要知道这是否也会遍历activerecord对象。
如果有任何其他方法可以提供更好的表现,请随意说明。
答案 0 :(得分:2)
你可以使用:
User.select(:id, :name).to_json
它可能不如您的pluck(...).map
版本的性能确实非常低。但它比你的all.map
版本更快,更优雅(也更容易阅读)。