对于强烈的迭代,前端与后端有关系吗?

时间:2014-05-30 01:16:08

标签: ruby sinatra erb

我有一个Sinatra应用程序,显示从数据库查询的一堆信息。由于返回信息的格式(例如拥有和管理员的ID号,但不是他们的名字),我最终做了很多:

<% admins.each do |admin| %>
  <% users.select {|user| user.id == admin.id} %>
    <%= <li> user.name </li> %>
  <% end %>
<% end %>

嵌套迭代需要时间,我想知道,对于大型列表,在执行上面的代码或在控制器中执行繁重的工作以及为erb模板创建一个现成的列表之间是否存在合理的性能差异。

非常感谢!

编辑:FWIW,有问题的数据库是mongodb,服务器正在进行一些数据库调用(来自不同的集合),以便将信息提供给客户端。

1 个答案:

答案 0 :(得分:0)

这不是前端与后端问题的答案。

但这将特别有助于您的案例:

你应该使用这个:

Admin.includes(:users)

此博客文章也很有帮助:http://blog.arkency.com/2013/12/rails4-preloading/