Muitos para Muitos com atributo extra

Galera, estou querendo fazer meio que um relacionamento de muitos para muitos, porém alem dos atributos das duas tabelas relacionadas, a tabela intermediária teria que receber um atributo extra. Por exemplo:

Cliente_Emprestimo
cliente_id : int
emprestimo_id: int
dado_extra: string

Gostaria de uma luz de como posso popular essa tabela. E se é realmente has_and_belong_to_many ou serão dois belogs_to.