0
使用Rails 3.我有以下幾點:Rails counter_cache更新太慢?
# shop.rb
class Shop < ActiveRecord::Base
belongs_to :country, :touch => true, :counter_cache => :total_shops
...
end
# shops_controller.rb
class ShopsController < ApplicationController
def create
...
@shop.save
@new_total_shops = @country.total_shops
end
end
假設初始@country.total_shops
是2
,那麼它的創建時,應該增加至3
,但是當我嘗試abort(@country.total_shops)
行@shop.save
之後,它仍然顯示2
。當我刷新頁面時,它顯示3
。我想它只是得到更新有點慢。
如何快速獲得最新值?
謝謝。
當執行「創造」的方法,是頁面本身刷新,錯誤的結果顯示其執行「創造」(這樣的「表演結束後軌顯示在頁面上「),還是在自定義視圖中發生? – Cninroh 2013-03-23 16:03:18
頁面未自行刷新。我實際上想將'@ new_total_shops'傳遞給javascript視圖以進行ajax更新。 – Victor 2013-03-23 16:09:03
如果您在「@ shop.save」之前移動「@new_total_shops = @ country.total_shops」,會發生什麼情況?你可以總是包裝在交易中的一致性 - ActiveRecord :: Base.transaction做...結束 – Cninroh 2013-03-23 16:14:16