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