ruby-on-rails-3 - Rails 部分有时需要太多时间来渲染

标签 ruby-on-rails-3 ruby-on-rails-3.1 partial-views renderpartial

在我看来,我正在渲染部分。这实际上是一个行元素,在表格中出现了大约 500 - 600 次。我急切地加载了所有关联。
但是,问题是,有时相同的部分需要突然不同的渲染时间。

我的 Rails 服务器 o/p:

Rendered admin/invoices/_update.html.erb (1330.3ms)
Rendered admin/invoices/_update.html.erb (4.8ms)
Rendered admin/invoices/_update.html.erb (4.8ms)
Rendered admin/invoices/_update.html.erb (8.8ms)
Rendered admin/invoices/_update.html.erb (4.4ms)
Rendered admin/invoices/_update.html.erb (1309.9ms)
Rendered admin/invoices/_update.html.erb (4.7ms)
Rendered admin/invoices/_update.html.erb (4.6ms)
Rendered admin/invoices/_update.html.erb (4.6ms)
Rendered admin/invoices/_update.html.erb (1322.6ms)
Rendered admin/invoices/_update.html.erb (4.2ms)

此外,没有特定的行每次都需要更长的时间。

在我的 View 文件中:
<% @updates.each do |update| %>
<%= render :partial => 'update', :locals => {:user => update[0]} #each of this is  a row %>
<% end %>

更新:
还建议这是否是这样做的好方法?即:多次循环部分。我不能使用分页和 Ajax 来固定东西。!还有其他方法吗。?

最佳答案

Partials 在渲染集合时非常有用。当您通过 :collection 选项将集合传递给局部时,将为集合中的每个成员插入一次局部:

<%= render :partial => 'update', :collection => @updates %>

这也有一个简写。假设@updates 是更新实例的集合,您可以简单地将其写入 index.html.erb 以产生相同的结果:
<%= render @updates %>

Section 3.4.5 of the Rails Guides详细解释了这一点。

关于ruby-on-rails-3 - Rails 部分有时需要太多时间来渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284315/

相关文章:

ruby-on-rails - 在rails中直接编写SQL查询是一个好习惯吗?

asp.net-mvc-3 - 如何在 MVC3 中构建复合 UI?

ruby-on-rails - Rails - 如何选择表格中的最后一个日期?

ruby-on-rails - rails : How do I search tags generated by Act_As_Taggable_On with PG_Search? (postgresql)

mysql - 运行SQL语句时出错

ruby-on-rails-3 - 由于 Growl 错误 : OSERROR: -10000 MESSAGE: Apple event handler failed,Rails 3.1.1 Guard-rspec 无法运行

asp.net-mvc - 如何使用 ajax 将表单返回到 View ASP.Net MVC

c# - 我怎样才能更好地处理 ASP.NET MVC 中有关我的部分 View 的这种情况?

ruby-on-rails - 如何使用 Omniauth + capybara 测试 FB Connect?

ruby-on-rails-3 - ActiveAdmin:按子协会的属性排序