2012-03-06 16 views
6

Mam aplikację, w której zarządzam rejestracją/wylogowaniem z Railsami przez Devise.Odzyskaj szyny/wymyślaj bieżącego użytkownika z Backbone

Po zalogowaniu jestem przekierowany do indeksu Dashboard #, gdzie rozpoczyna się Backbone.

Chciałbym jakoś odzyskać moje current_user.id i current_user.token w Backbone.

Moim jedynym pomysłem jest mieć to w moim dashboard.html.haml

:javascript 
    window.App.current_user.id = "#{current_user.id}" 
    window.App.current_user.token = "#{current_user.token}" 

Odpowiedz

7

(Tylko uważaj, że jedynie informacje publiczne powinny być dostepne na stronie klienta)

na bardziej elegancki rozwiązanie możesz utworzyć model szkieletowy UserSession i fetch z serwera jako normalnego modelu szkieletu.

window.App.UserSession = Backbone.Model.extend({ 
    urlRoot: "/session" 
}); 

Jeśli nie chcesz, aby ten dodatkowy wniosek można załadować model wyraźnie z danych dostępnych już w czasie renderowania szablon:

window.App.current_user = 
    new window.App.UserSession({ 
    id: "#{current_user.id}", 
    token: "#{current_user.token}" 
    }); 
+0

Chcę tylko zwrócić uwagę, że to nie będzie działać z szablony js.erb, ponieważ programowanie nie jest dostępne. Możesz go udostępnić poprzez wymaganie lub możesz umieścić to na dole pliku application.html.erb po dołączeniu szkieletu. – WattsInABox

Powiązane problemy