2012-03-06 96 views
6

我有一个应用程序,通过Devise管理Rails的注册/进出。从Backbone检索rails/devise current_user

当我登录时,我被重定向到Backbone start的Dashboard#index。

我想检索我的current_user.id和current_user.token在Backbone。

我唯一的想法就是有这个在我dashboard.html.haml

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

回答

7

(只是要注意,只有公共信息应该是在客户端入店)

对于一个更优雅解决方案您可以创建一个UserSession骨干模型和fetch它从服务器作为正常骨干模型。

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

如果不想让你可以在模板渲染时间已有的数据明确地加载模型这种额外的要求:

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

我只是想指出,这不会从工作js.erb模板,因为devise在那里不可用。您可以通过某个地方的需求使其可用,或者您可以在包含主干后包含application.html.erb文件的底部。 – WattsInABox 2013-08-03 17:37:37