Ошибка только для чтения при запуске миграции на Rails 3 с update_attribute - PullRequest
13 голосов
/ 29 ноября 2010

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

Миграция

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,0680 с грабли прерваны! Произошла ошибка, эта и все последующие миграции отменены:

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

Есть идеи?

1 Ответ

13 голосов
/ 29 ноября 2010

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

Проблема с реализацией counter_cache

Спасибо SO!

...