Counter_cache a veces


#1

Muy buenas,

Existe la posibilidad que counter_cache sólo funcione para la clase
Article??? La idea sería que counter_cache sólo funcionase si encuentra
la counter_cache_column en el otro modelo.

app/models/comment.rb

class Comment < ActiveRecord::Base
belongs_to :commenter, :polymorphic => true, :counter_cache => true
end

app/models/project.rb

class Project < ActiveRecord::Base
has_many :comments, :class_name => ‘Comment’, :as => :commenter
end

Aquí NO tenemos la columna comments_count

app/models/article.rb

class Article < ActiveRecord::Base
has_many :comments, :class_name => ‘Comment’, :as => :commenter
end

Aquí SÍ tenemos la columna comments_count

Un saludo!


#2

No creo que Rails ofrezca algo directo para lo que necesitas hacer, lo
que
se me ocurre en este momento es usar los metodos de clase
increment_counter
y decrement_counter del ActiveRecord junto a los callbacks after_create
y
after_destroy.

Saludos.