2014-09-24 4 views
2

이 카운터 캐시는 올바르게 작동하지 않는 것으로 알고 있습니다.Rails 4.1 카운터 캐시가 업데이트되지 않습니다.

user.rb :

class User < ActiveRecord::Base 
    has_many :search_stats, counter_cache: true 
end 

마이그레이션 :

class AddSearchStatsCounterCacheToUsers < ActiveRecord::Migration 
    def up 
    add_column :users, :search_stats_count, :integer, default: 0, null: false 

    User.reset_column_information 
    User.find_each do |u| 
     u.update_attribute(:search_stats_count, u.search_stats.count) 
    end 
    end 

    def down 
    remove_column :users, :search_stats_count 
    end 
end 

왜 카운터를 업데이트하지 않는 이유는 무엇입니까?

user = User.find(user_id) 
user.search_stats.create!(search_params: search_params.to_json) 
+0

로그를 확인하십시오. 'search_stats_count'에 대한 Uncommitted params 오류가 표시됩니까? – kobaltz

+0

죄송합니다. 나는 여기서 내가 잘못한 것을 깨달았다. 나는 맥주가 필요해. – astephenb

답변

4

진지한 두뇌 방귀. counter_cache 옵션은 has_many이 아닌 belong_to에 있어야합니다. Rails docs