Digamos que temos a seguinte associação has_many :through:
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.
Este artigo pertence a série “Edge Rails”. Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 ou superior. A intenção desta série é preparar antecipadamente os programadores para as próximas versões do framework.
Nenhum comentário em "Edge Rails: Método count do ActiveRecord não inclui um alias para associações"
Deixe o seu comentário!