Podstawowa autoryzacja

Cześć,

chcę napisać podstawą autoryzację, bardzo prostą. User może widzieć, edytować, usuwać tylko swoje przedmioty, klasy, uczniów. W momencie tworzenia do przedmiotu przypisuje user_id, przedmiot ma wiele klas, a klasy mają wiele uczniów.

Pytanie, czy do modelu klasy i uczniowie dodać także pole users_id czy za każdym razem wyciągać user_id z przedmiotu?

Można to jakoś prosto zrobić?

Albo mam racje

subject < groups < classes < presences < marks

Subject ma tylko user_id.

Przy kasowaniu mark zeby sprawdzić kto jest właścicielem musiałbym zrobić takie zapytanie Mark.find(1).presence.class.group.subject.user_id

Takie coś generuje kilka zbędnych zapytań, a znowuż dodwanie do każdego modelu user_id to redundancja :confused: