第一个代码:
# 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)
慢下来。
第二段代码:
# 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)
好多了。
为什么不使用partial会这么快?
答案 0 :(得分:9)
您是否在开发模式下运行?我不知道Rails的内部工作原理,但我知道它在生产中缓存视图代码,而在开发中重新读取文件。如果它在请求的持续时间内缓存了视图会很好,但它可能不会,这可能是问题。
此外,不是循环匹配,而是尝试给出以下旋转:
= render @matches
它肯定更简洁,如果问题是重新读取文件,Rails可能会优化该过程,如果它知道你将要循环。