2012-03-06 8 views
6

DevailsからRailsを使ってサインイン/イン/アウトを管理するアプリがあります。バックボーンからrails/devise current_userを取得する

私がログインしているとき、私はBackboneが始まるDashboard#indexにリダイレクトされます。

バックボーンでcurrent_user.idとcurrent_user.tokenを何とか取得したいと思います。

私の唯一のアイデアは私の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

関連する問題