Logic, okOK it might soundssound a bit weak for this but it would be logical to say that "i"I have a supplier who has an account with me, iI want to see all the entire account history of this supplier", so it makes sense for me to be able to access account history from supplier straightdirectly.
Efficiency, this for me is the main reason iI would use :through
:through, simply because this issues a join statement rather than calling supplier, and then account, and then account_history. noticed the number of database calls?
using :through
:through, 1 call to get the supplier, 1 call to get account_history (rails automatically useduses :join:jointo retrieve through account)using normal association, 1 call to get supplier, 1 call to get account, and 1 call to get account_history
that'sThat's what iI think =) hope it helps!