Nie powinieneś używać zależnych => :destroy w swoich modelach, jeśli masz FK z ON DELETE CASCADE. Może uruchamiać niepotrzebne zapytania i nie można liczyć na to, że nie zepsuje rzeczy w przyszłości. Powinieneś umieścić komentarz w pliku modelu, aby udokumentować, że to się dzieje. chociaż.
Polecam również wykonanie FK w migracjach. Byłoby znacznie lepiej, gdyby twoja testowa baza danych miała takie same ograniczenia jak baza produkcyjna, co może powodować bardzo podstępne błędy. Istnieje wtyczka RedHill (redhillonrails_core), która ułatwia migracje kluczy obcych i umożliwia zrzuty schematów z ograniczeniami FK, dzięki czemu testowanie jest znacznie prostsze.