This change doesn't modify the association -- the uniqueness validaiton was already there, but it stopped working with the prior change from validating on ID to validating on object -- that works for :presence, but apparently not for :uniqueness. The reason I had this as a separate model is that it seemed cleaner than actually modifying the Hostgroup model with a new field -- it also allows us to add custom stuff to this join model in the future if we want to, although technically we could do the whole thing by just modifying the Hostgroup model with a new belongs_to association and a migration that modifies the underlying db table. The same could be said for the hostgroup->deployment association, really.