met*_*hyl 3 views ruby-on-rails partials ruby-on-rails-3
第一个代码:
# matches/index.html.haml
%ul.match_list
- @matches.each do |match|
%li
=render match
# matches/_match.html.haml
%li
=match.id
Completed 200 OK in 665ms (Views: 496.3ms | ActiveRecord: 142.1ms)
Run Code Online (Sandbox Code Playgroud)
地狱慢了.
第二个代码:
# matches/index.html.haml
%ul.match_list
- @matches.each do |match|
%li
=match.id
Completed 200 OK in 196ms (Views: 30.0ms | ActiveRecord: 134.6ms)
Run Code Online (Sandbox Code Playgroud)
好多了.
为什么在不使用部分时这么快?
你在开发模式下运行吗?我不知道Rails的内部工作原理,但我知道它在生产中缓存视图代码,而在开发中重新读取文件.如果它在请求的持续时间内缓存了视图会很好,但它可能不会,这可能是问题.
此外,不要循环匹配,尝试给以下一个旋转:
= render @matches
Run Code Online (Sandbox Code Playgroud)
它肯定更简洁,如果问题是重新读取文件,Rails可能会优化该过程,如果它知道你将要循环.