2011-09-11 5 views
19

Jestem stosunkowo nowy na szynach. . Mam Devise skonfigurować, a chcesz uruchomić jakiś kod wywołania zwrotnego po użytkownicy zalogowaćGdzie powinny być wywoływane zwrotne wezwania w aplikacji szyny?

Patrząc na Warden wiki page, mogę użyć „after_set_user” zwrotnego, aby wykonać tę logikę, na przykład:

Warden::Manager.after_set_user do |user, auth, opts| 
    unless user.active? 
    auth.logout 
    throw(:warden, :message => "User not active") 
    end 
end 

Jednak nie jestem pewien, gdzie powinienem przechowywać te rzeczy. Moją pierwszą myślą jest, że mogę umieścić go w config/initializers/devise.rb. Czy to jest poprawne? To nie jest w porządku umieszczanie tego, co w istocie jest kodem kontrolera w katalogu konfiguracyjnym.

+0

Wygląda na filtrze „after_set_user”, to jest moje przypuszczenie jest kontrolerem. – Bnjmn

+0

Właściwie znalazłem sekcję w inicjalizatorze/devise.rb o nazwie "konfiguracja Warden", więc domyślam się, że jest to poprawne miejsce na jej umieszczenie. –

+0

Czy znalazłeś gdzie umieścić ten kod? A może w jakiś sposób dostosowałeś go do stylu kodu inicjalizującego Devise? – dgilperez

Odpowiedz