I have 2 models - Teacher and Subject. A want to connect them via Join table with name Qualification.
It looks like i
You should only use has_and_belongs_to_many
if you don't intend to work directly with the join table. In your case, use it if you don't intend to use Qualification itself but only Teacher and Subject and let Active Record do the dirty work. If you have anything to do with the join model, use has_many :through.
Read more here: Choosing Between has_many :through and has_and_belongs_to_many