Вам не нужно создавать никаких подобных ограничений.Вам просто нужно создать автономную миграцию, чтобы создать таблицу соединений.Допустим, у вас есть 2 модели с habtm, User и Role.
>> script/generate migration roles_users
В вашей миграции
create_table :roles_users, :id => false do |t|
t.references :user
t.references :role
end
Вот так