アプリケーションのトップグループを表示するページがあります。リーダーボードの計算にはコストがかかるため、次のように1時間結果をキャッシュします。
@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、Ruby1.9.2を使用しています