Digamos que temos a seguinte associação has_many :through:
class Author < ActiveRecord::Base
has_many :authorships
has_many :books, :through => :authorships
end
Ao procurar por um livro você pode incluir a autoria em sua busca:
author.books.find(:all, :include => :authorships,
:conditions => ["authorships.primary = ?", true])
Isto funciona muito bem, sem erros. Mas tente fazer o mesmo com o método count:
author.books.count(:include => :authorships,
:conditions => ["authorships.primary = ?", true])
Temos um erro. Isto acontece porque a tabela authorships foi incluída duas vezes na mesma query.
O método find é mais esperto, porque ele cria um apelido para a tabela, coisa que o método count não faz. Eu sei que o exemplo dado não é muito bom, mas é apenas para tentar mostrar o problema com o método count.
Esta falha foi corrigida. Agora o método count se comporta exatamente como o método find em relação ao :include.