13.17. Definiowanie haków dotyczących zdarzeń związanych z tabelami

Problem

Chcemy uruchomić pewien kod przy każdej operacji dodawania wiersza do bazy danych, jego modyfikacji bądź usuwania. Na przykład, chcemy wysłać wiadomość e-mail za każdym razem, kiedy tworzymy nowy post blogu.

Rozwiązanie

W przypadku biblioteki Og można skorzystać z własności Glue::Aspect. Można skorzystać z jej metod before i after i zarejestrować kod, który uruchomi się przed lub po wykonaniu metod biblioteki Og. Najczęściej “opakowywane” w ten sposób metody to og_insert, og_update oraz og_delete.

W kodzie zamieszczonym poniżej dla klasy BlogPost zdefiniowanej po raz pierwszy w „13.12. Mapowanie obiektowo-relacyjne z wykorzystaniem biblioteki Og” zdefiniowano ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.