Bac*_*cko 3 ruby database caching ruby-on-rails ruby-on-rails-3
我正在使用Ruby on Rails v3.2.2,我想通过仅在一个案例中禁用系统缓存来检索数据库数据.也就是说,在我的视图文件中,我有以下内容:
<h1>Random articles 1</h1>
<%= Article.order('RAND()').limit(3).inspect %>
...
<h1>Random articles 2</h1>
<%= Article.order('RAND()').limit(3).inspect %>
Run Code Online (Sandbox Code Playgroud)
当呈现视图文件时,它在"随机文章1"和"随机文章2"下输出相同的数据.之所以发生这种情况是因为Ruby on Rails缓存系统(通过"默认"/"约定")试图以性能为由尽可能少地访问数据库.
如何防止此行为(仅针对上述情况),以便在视图文件中为finder方法输出不同的数据?
uncachedActiveRecord中有方法.看起来你可以像这样使用它:
articles = Article.uncached do
Article.order('RAND()').limit(3)
end
Run Code Online (Sandbox Code Playgroud)
但是你最好把它提取到模型的类方法中.
有关更多信息,请参阅此文章
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |