2011-01-31 16 views
5

Po prostu zacznij rozwijać się z myślą o uwierzytelnianiu mojej aplikacji, ale mam problem z dostępem do current_user z modelu. Nie mam problemu z uzyskaniem dostępu do tego z kontrolera.Jak uzyskać dostęp do projektowania bieżącego_użytkownika z modelu

Dla mojego scenariusza potrzebuję uzyskać bieżący identyfikator użytkownika, aby śledzić, kto ma edytować wpis na blogu, który zapisuję identyfikator użytkownika z filtrem before_save.

Doceń swoją pomoc!

Dzięki

Odpowiedz

3

Można go przekazać tylko w parametrze.

class SomeModel 
    def my_nifty_method(user) 
    end 
end 

w kontrolerze:

class SomeModelsController < ApplicationController 
    def some_method 
    sm = SomeModel.new 
    sm.my_nifty_method(current_user) 
    end 
end 
-1

Powinieneś być w stanie to zrobić w swoim modelu. "c" tutaj jest obiektem modelu i ustawia go jako atrybut user_id przed utworzeniem lub zapisaniem w twoim przypadku.

before_create {|c| c.user_id = Authorization.current_user.id} 

Jestem trochę nowy w RoR, więc ostrzegam.

-5

Dlaczego próbujesz uzyskać dostęp do tej metody w modelu? Możesz uzyskać dostęp do atrybutów ID przez self.id (w ramach modelu)

+0

Czy mogę zapytać, dlaczego negatywne głosy? – eveevans

+1

'self.id' zwraca identyfikator aktualnej instancji, a nie' current_user' –

+0

, tak, a pytanie brzmi: ".. muszę uzyskać bieżący identyfikator użytkownika .." – eveevans

Powiązane problemy