gpt4 book ai didi

ruby-on-rails-3 - Rails.cache.fetch 插入额外的值

转载 作者:行者123 更新时间:2023-12-04 07:04:58 26 4
gpt4 key购买 nike

我们有一个页面显示我们应用程序的顶级组。排行榜的计算成本很高,因此我们将结果缓存了一个小时,如下所示:

@groupboard = Rails.cache.fetch("top_groups", :expires_in => 1.hour) do  
Group.top_groups
end

这是在第一次写入缓存后出错。在控制台中查看,我看到 Group.top_groups 返回一个如下所示的项目数组:
[#<Group id: 4, name: "IBP", rank: 6, users_count: 13, leader_id: 4662>, 3887]

当我查看从缓存返回的结果时,它如下所示:
[#<Group id: 4, name: "IBP", rank: 6, users_count: 13, leader_id: 4662>, :@new_record_before_save], false, 3887]

有谁知道是什么导致 @new_record_before_save 和“false”值被插入到缓存中这个对象的所有条目中?

我们使用的是 Dalli、Memcached 1.4.9、Rails 3.2.4、Ruby 1.9.2

最佳答案

在具有关联对象的 AR 对象上存在 Rails 缓存错误。尝试以下操作:

@groupboard = Rails.cache.fetch("top_groups", :expires_in => 1.hour) do  
Group.top_groups.map(&:reload)
end

查看更多
https://github.com/mperham/dalli/issues/250

关于ruby-on-rails-3 - Rails.cache.fetch 插入额外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11199396/

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