Passeringskontroll i skenor görs på kontrollnivå, inte modellnivå. Som ett resultat ger rails ingen mekanism för att komma åt den aktuella användaren, cookies etcetera, från insidan av modellkoden. Du kan överföra data till modellen genom parametrar till metoder, om du vill. Men det skulle vara att ignorera designbesluten från några av de bästa programmerarna i branschen, så jag tror att det förmodligen inte är ett bra val.
Med andra ord, gör inte det du försöker göra. Lägg kunskapen om hur man gör saker i din modell, men sätt kontroller runt vem som kan göra dem i kontrollern.
Å andra sidan, om du försöker lagra den aktuella användaren av någon anledning, bör du göra det genom någon form av association (eller kapslat dokument, eftersom du använder mongo). I så fall ska du inte använda current_user
inuti modellen, utan gör hellre en attr_accessor
på användare, ställ in användaren på instansen av din modell till current_user
i styrenheten och spara den sedan som du behöver i din återuppringning.