Один маленький нюанс :counter_cache

Илья • 18 июля 2007 г.

Если вы хотите использовать :counter_cache для своих ассоциаций, не забудьте что поле, в котором будет хранится количество связей, должно иметь дефолтовое значение 0, а не NULL, как это иногда бывает по-стандарту.

class AddCounterCaches < ActiveRecord::Migration
  def self.up
    add_column :posts, :comments_counter, :integer, :default => 0
  end

  def self.down
    remove_column :posts, :comments_size
  end
end

3 комментария:

  1. PartyZan:

    Что-то с русским языком в RSS случилось :(

  2. PartyZan:

    есть еще параметр :null => false, который явно указывает на недопустимость NULL значений в таблице

  3. Nexus:

    Кстати, если иногда при наличии counter_cache, пробуем взять значение счетчика (типа user.posts_count) и получаем запрос в базу SELECT Count(*) FROM posts WHERE user_id = N; Вместо того, чтобы взять из аттрибута user.posts_count

Извините, но комментарии для этой статьи уже закрыты.