Database Associations Help

So I have a Post model, and a Category model.

I can't wrap my head around trying to find the number of posts inside
each category. I believe you would use a join for this, or some sort
of association.

The "models/category.rb":

class Category < ActiveRecord::Base
  has_and_belongs_to_many :posts
end

The "models/post.rb"
class Post < ActiveRecord::Base
  has_many :comments
  belongs_to :category
end

How would I do something like this? I assume you would query it like:
@category = Category.find(:all)
@category.post.size

GarrettB wrote:

So I have a Post model, and a Category model.

I can't wrap my head around trying to find the number of posts inside
each category. I believe you would use a join for this, or some sort
of association.

The "models/category.rb":

class Category < ActiveRecord::Base
  has_and_belongs_to_many :posts
end

The "models/post.rb"
class Post < ActiveRecord::Base
  has_many :comments
  belongs_to :category
end

How would I do something like this? I assume you would query it like:

categor = Category.find(:all)

GarrettB wrote:

class Category < ActiveRecord::Base
  has_and_belongs_to_many :posts
end

The "models/post.rb"
class Post < ActiveRecord::Base
  has_many :comments
  belongs_to :category

Both sides of a habtm are always habtm:

   has_and_belongs_to_many :categories

end

How would I do something like this? I assume you would query it like:

No @ - there's no reason to make categories into an instance variable.

categories = Category.find(:all)
categories.each do |cat|
   p cat.posts.count
end

Think of cat.posts as simultaneously an array of all posts, and a super-model that can do anything Post can (such as Post.find()) but with the link to the Category automatically turned on.

I can't seem to for the life of me to get this working, do you have an
example of how my database should look? And how my associations need
to be?