Я считаю, что HABTM в основном был заменен has_many: through.
Вы бы создали модель соединения, что-то вроде "InvoicePayment" (или что-то еще креативное)
class Payment < ActiveRecord::Base
has_many :invoice_payments
has_many :invoices, :through => :invoicepayments
end
class InvoicePayment < ActiveRecord::Base
belongs_to :invoice
belongs_to :payment
end
class Invoice < ActiveRecord::Base
has_many :invoice_payments
has_many :payments, :through => :invoice_payments
end
Это должноисправить вашу проблему.