我有一个Sinatra应用程序,显示从数据库查询的一堆信息。由于返回信息的格式(例如拥有和管理员的ID号,但不是他们的名字),我最终做了很多:
<% admins.each do |admin| %>
<% users.select {|user| user.id == admin.id} %>
<%= <li> user.name </li> %>
<% end %>
<% end %>
嵌套迭代需要时间,我想知道,对于大型列表,在执行上面的代码或在控制器中执行繁重的工作以及为erb模板创建一个现成的列表之间是否存在合理的性能差异。
非常感谢!
编辑:FWIW,有问题的数据库是mongodb,服务器正在进行一些数据库调用(来自不同的集合),以便将信息提供给客户端。
答案 0 :(得分:0)
这不是前端与后端问题的答案。
但这将特别有助于您的案例:
你应该使用这个:
Admin.includes(:users)
此博客文章也很有帮助:http://blog.arkency.com/2013/12/rails4-preloading/