gpt4 book ai didi

ruby-on-rails - 如何通过仅针对一种情况禁用Ruby on Rails 缓存系统来检索数据库数据?

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:42 25 4
gpt4 key购买 nike

我正在使用 Ruby on Rails v3.2.2,我想仅在某些情况下通过禁用系统缓存来检索数据库数据。也就是说,在我的 View 文件中,我有如下内容:

<h1>Random articles 1</h1>
<%= Article.order('RAND()').limit(3).inspect %>
...
<h1>Random articles 2</h1>
<%= Article.order('RAND()').limit(3).inspect %>

渲染 View 文件时,它会为“Random articles 1”和“Random articles 2”输出相同的数据。发生这种情况是因为 Ruby on Rails 缓存系统(“默认”/“约定”)出于性能原因尝试尽可能少地访问数据库。

我怎样才能防止这种行为(仅针对上述情况)以便在我的 View 文件中为 finder 方法输出不同的数据?

最佳答案

uncached ActiveRecord 中的方法。看起来你可以像这样使用它:

articles = Article.uncached do
Article.order('RAND()').limit(3)
end

但您最好将其提取到模型的类方法中。

参见 this article了解更多信息

关于ruby-on-rails - 如何通过仅针对一种情况禁用Ruby on Rails 缓存系统来检索数据库数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com