I have a Post and Tag model with many-to-many associations:
post.rb:
class Post < ActiveRecord::Base attr_accessible :title, :content, :tag_names has_many :taggings, :dependent => :destroy has_many :tags, :through => :taggings attr_writer :tag_names after_save :assign_tags def tag_names @tag_names || tags.map(&:name).join(" ") end private def assign_tags ntags = [] @tag_names.to_s.split(" ").each do |name| ntags << Tag.find_or_create_by_name(name) end self.tags = ntags end end
tag.rb:
class Tag < ActiveRecord::Base has_many :taggings, :dependent => :destroy has_many :posts, :through => :taggings has_many :subscriptions has_many :subscribed_users, :source => :user, :through => :subscriptions end
tagging.rb (model for the connection table):
class Tagging < ActiveRecord::Base belongs_to :post belongs_to :tag end
I want to create :counter_cache , which keeps track of how many posts the tag has.
How can I accomplish this in this many-to-many association?
EDIT:
I have done this before:
comment.rb:
belongs_to :post, :counter_cache => true
But now that there is no belongs_to in the post.rb file. I'm a little confused.
source share