0

这是我的第一个 Rails 应用程序,我现在正在尝试适当地优化和缓存,一开始可能有点令人生畏。

无论何时Programs列出,如果它User是它的创建者,Program它会显示一个“编辑程序”按钮。否则,不显示任何内容。

程序列表不会经常更改(可能一天几次?)缓存它的最佳方法是什么?

似乎为每个用户/程序关系做一个片段缓存是错误的,因为只有一个User人会看到那个按钮。

或者我只是需要重新设计我的视图来忽略这个问题。

4

1 回答 1

1

我建议做一个既基于程序又基于诸如program.owned_by(user)之类的方法的缓存键。

例如,视图可能是这样的

<% cache [program.cache_key, program.owned_by?(user)] do %>
  # all of your view code here
<% end %>

这将做的是不仅在程序上创建片段缓存,而且无论该事物是否由用户对象拥有。program.cache_key 将基于程序 updated_at 时间戳,因此它应该在必要时过期。这个复合缓存键的第二部分本质上是真或假,这取决于程序是否归用户所有。您必须在模型中实现该方法。

希望这可以帮助。

于 2013-06-08T21:13:23.677 回答