Counting records in an association.

I would like to know how to count records in an association.
My Models look like this:

// Users
class User < ActiveRecord::Base
  has_many :read
  has_many :books, :through => :read

class Read < ActiveRecord::Base
  belongs_to :user
  belongs_to :book

class Book < ActiveRecord::Base
  has_many :read
  has_many :books, :through => :read

In my book_controller I have these queries:
      @user = User.find(params[:user_id])
      @topics = Topic.find(:all)
      @read_by_topic = Book.find(:all, :conditions =>
      @pending_books = @read_by_topic - @user.books

If I use this code @user.assignments.count it returns the number of
books I've read from the join model.

My question is, how do I find out how many of books I still need to
@read_by_topic - @user.books returns an array but I can't add a count.
If I do it says I get an error that says, can't convert Fixnum into

Any help?

What does the assignments model look like?

Not sure what you mean by "@read_by_topic - @user.books returns an array
but I can't add a count."

Can you do @pending_books.length maybe?