Kontrola dostępu w szynach odbywa się na poziomie kontrolera, a nie modelu. W rezultacie rails nie zapewnia mechanizmu dostępu do bieżącego użytkownika, plików cookie itp., z wnętrza kodu modelu. Możesz przenieść dane do modelu według parametrów do metod, jeśli chcesz. Byłoby to jednak ignorowaniem decyzji projektowych niektórych z najlepszych programistów w branży, więc myślę, że prawdopodobnie nie jest to dobry wybór.
Innymi słowy, nie rób tego, co próbujesz zrobić. Umieść wiedzę o tym, jak robić różne rzeczy w swoim modelu, ale kontroluj, kto może to robić w kontrolerze.
Z drugiej strony, jeśli z jakiegoś powodu próbujesz zapisać bieżącego użytkownika, powinieneś to zrobić przez jakieś skojarzenie (lub zagnieżdżony dokument, ponieważ używasz mongo). W takim przypadku nie używaj current_user
wewnątrz modelu, ale raczej utwórz attr_accessor
w przypadku użytkownika ustaw użytkownika w instancji modelu na current_user
w kontrolerze, a następnie zapisz go tak, jak potrzebujesz w swoim wywołaniu zwrotnym.