Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieve rails/devise current_user from Backbone

I have an app where I manage the sign up/in/out with Rails through Devise.

When I'm logged in, i'm redirected to Dashboard#index where Backbone start.

I would like to retrieve somehow my current_user.id and current_user.token in Backbone.

My only idea is to have this in my dashboard.html.haml

:javascript
  window.App.current_user.id = "#{current_user.id}"
  window.App.current_user.token = "#{current_user.token}"
like image 456
damienbrz Avatar asked Mar 06 '12 11:03

damienbrz


1 Answers

(Just beware that only public information should be accesible in the client side)

For a more elegant solution you can create a UserSession Backbone model and fetch it from the server as normal Backbone model.

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

If don't want to make this extra request you can load the model explicitly with data already available in template rendering time:

window.App.current_user = 
  new window.App.UserSession({
    id:    "#{current_user.id}",
    token: "#{current_user.token}"
  });
like image 136
fguillen Avatar answered Oct 23 '22 18:10

fguillen