2010-11-29 3 views
11

Я пытаюсь добавить counter_cache, и эта миграция Rails 3 дает мне ошибку, которую я просто не могу решить.Ошибка чтения при запуске миграции Rails 3 с update_attribute

Миграция

 
class AddItemsCountToStore < ActiveRecord::Migration 
    def self.up 
     add_column :stores, :items_count, :integer, :default => 0 

     Store.reset_column_information 

     Store.all.each do |store| 
      store.update_attribute :items_count, store.items.count 
     end 
    end 

    def self.down 
     remove_column :stores, :items_count 
    end 
end 

и ошибка:

== AddItemsCountToStore: мигрирующий ====================== =================== - add_column (: stores,: items_count,: integer, {: default => 0}) -> 0.0680s rake aborted! произошла ошибка, это и все последующие миграции отменены:

items_count помечен как только для чтения C: /Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.0/lib/active_record/ persistence.rb: 115: in `update_attribute '

Любые идеи?

+0

Возможный дубликат [Проблема с реализацией счетчика \ _cache] (http://stackoverflow.com/questions/4295404/problem-with-counter-cache-implementation) – mbillard 2014-04-30 11:03:16

ответ

11

На самом деле, я думаю, я только что нашел ответ в Stack Overflow.

Problem with counter_cache implementation

спасибо!

+0

Вы можете пометить свой собственный ответ как правильный. Это помогло мне :) – FelixMM 2012-12-14 20:01:39

Смежные вопросы