it's more descriptive, even if it doesn't change down the road, which you never know for sure anyway. code should be modular and expressive always ;) not just when a change is perceived. in any case, has_and_belongs_to_many is pretty rare to see these days. better to use what's in common usage as well