Logo Ruby on Rails - frameworka do tworzenia aplikacji WEB Opublikowany 2024-03-13 03:53:55 UTC przez: Redaktor

Migracje Rails: ActiveRecode zależności

Opcje na ratunek!

W Railsach i ActiveRecord fajne jest jest to, że oferuje naprawdę solidny zestaw narzędzi do obsługi błędów i sprawdzania poprawności. To dzięki opcji :dependent.

Jeśli nie chcemy od razu niszczyć wydarzeń (z jednej kolekcji), w rzeczywistości wolelibyśmy, aby pozostały i mogliśmy po prostu zastąpić gospodarza (z drugiej kolekcji). Kurczę, może moglibyśmy zautomatyzować zapraszanie najbardziej aktywnych użytkowników powiązanych z tym wydarzeniem na nowego gospodarza! Zakładając, że podoba nam się kierunek automatyzacji, potraktujmy ten pomysł jako myśl przewodnią i zobaczmy, jakie mamy opcje.

Opcje :dependentoferują nasze powiązane dane!

Zapożyczone bezpośrednio z dokumentacji Rails:

  • zero nic nie rób (domyślnie).

  • :destroy powoduje również zniszczenie wszystkich powiązanych obiektów.

  • :destroy_async niszczy wszystkie powiązane obiekty w zadaniu w tle. OSTRZEŻENIE: Nie używaj tej opcji, jeśli skojarzenie jest wspierane przez ograniczenia klucza obcego w Twojej bazie danych. Działania ograniczające klucz obcy będą miały miejsce w tej samej transakcji, która usuwa jej właściciela.

  • :delete_all powoduje usunięcie wszystkich powiązanych obiektów bezpośrednio z bazy danych (więc wywołania zwrotne nie zostaną wykonane).

  • :nullify powoduje ustawienie kluczy obcych na NULL. Typ polimorficzny również zostanie unieważniony w przypadku powiązań polimorficznych. Wywołania zwrotne nie są wykonywane.

  • :restrict_with_exception powoduje zgłoszenie wyjątku ActiveRecord::DeleteRestrictionError, jeśli istnieją powiązane rekordy.

  • :restrict_with_error powoduje dodanie błędu do właściciela, jeśli istnieją powiązane obiekty.

Powrót do Listy artykułów