在我看来,我做了很多这样的事情:
<% cache("sports_menu_" +session[:lang], {:expires_in => 60.minutes}) do %>
...... # a load of stuff
<% end %>
但是我发现花了很多时间来查询数据库中经常没有改变的数据。 有没有办法以类似的方式缓存这些数据?
例如:
Model.find(:all, :select => "only a few fields", :conditions => "nasty conditions", :include => "some joins", :order => "date_time desc")
这需要大约7秒钟,主表保留大约20M的记录。很多用户点击了这个特定的操作,查询只运行一次/命中。但是对于其他所有人来说,从高速缓存中加载它会有意义的缓存。顺便说一下,我正在使用memcache。
我无法缓存整个操作,因为有些参数有时会发生变化,而视图中会出现一些特定于语言环境的代码。
我已经考虑过将其移到视图级别但是对此感觉不太舒服,这会使得使用Rails失败。
TIA!