2012-03-06 82 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