Toegangscontrole in rails gebeurt op controllerniveau, niet op modelniveau. Als gevolg hiervan biedt rails geen mechanisme om toegang te krijgen tot de huidige gebruiker, cookies, enzovoort, vanuit de modelcode. U kunt de gegevens desgewenst door parameters naar methoden in het model overbrengen. Dat zou echter neerkomen op het negeren van de ontwerpbeslissingen van enkele van de beste programmeurs in de branche, dus ik denk dat het waarschijnlijk geen goede keuze is.
Met andere woorden, doe niet wat je probeert te doen. Zet de kennis van hoe je dingen moet doen in je model, maar plaats controle over wie ze kan doen in de controller.
Aan de andere kant, als je de huidige gebruiker om de een of andere reden probeert op te slaan, dan moet je dat doen door een soort associatie (of genest document, aangezien je mongo gebruikt). Gebruik in dat geval geen current_user
in het model, maar maak liever een attr_accessor
op gebruiker, stel de gebruiker op de instantie van uw model in op de current_user
in de controller, en sla het vervolgens op hoe u wilt in uw terugbelverzoek.