Rails 使用集合渲染部分内部部分

Kum*_*mar 5 ruby rendering ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我有一个部分嵌套在部分集合内。例如

<= render partial: "users/user", collection: @users, as: :user %>
Run Code Online (Sandbox Code Playgroud)

在部分内部_user.html.erb,我正在渲染另一个部分,如下所示:

<%= render partial: "users/user_info", locals: {user: user}  %>
Run Code Online (Sandbox Code Playgroud)

它以这种方式工作,但问题是它_user_info.html.erb为每个用户对象渲染部分内容,这使得它需要很长时间。我怎样才能避免这种情况?有什么建议么?

Lon*_*yen 1

渲染局部通常需要时间。我想到了两种减少渲染时间的方法:

  1. 减少部分文件,这意味着不要使用部分文件。
  2. 实施适当的缓存策略,在这种情况下通常是片段缓存。

有关 Rails 中缓存策略的更多信息,请查看:http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching