[英]how to access user id from cookie using javascript: Rails, Devise, Page Caching
[英]Access Devise user from AngularJS?
我有一個在前端使用AngularJS的Rails應用程序。 我還具有“ / api /:user_id / submissions /:id”格式的路由,可以訪問用戶的特定提交內容。 在前端,我想顯示當前登錄的Devise用戶的每條帖子,以及它們的帖子。 我創建了兩個Angular工廠:
var brainDB = angular.module('brainDB',['ngResource']).factory('userSubmission', function($resource){
var service = $resource('/api/:user_id/submissions/:id', {user_id: '@user'}, {id: '@id'} );
return service;
並將其范圍限制在我的控制器上:
brainDB.controller('SubmissionsCtrl',['$scope', 'Submission', 'userSubmission',
function($scope, Submission, userSubmission){
$scope.submissions = Submission.query();
$scope.userSubmissions = userSubmission.query();
}]);
唯一的問題是,頂部的工廠無法正常工作。 我可以在數據庫中輸出每個提交的內容,但是我不知道如何告訴Angular current_user的user_id是什么。 我有一個commits.rb控制器,它的操作可以成功地從我的路線“ / api /:user_id / submissions /”中提取特定用戶的所有帖子,但就像我說的那樣,我不知道如何告訴Angular current_user.id是因為只能從Rails訪問current_user。
我已經嘗試解決這個問題已有一個星期了,並且在Google搜索中找不到太多幫助。 任何意見是極大的贊賞。
我自己的應用程序還有另一個服務器端點調用defaults
和角度服務Metadata
,這些Metadata
在angular .run()
塊中初始化。 此塊將currentUser
對象(以及其他元數據)拉回以初始化$rootScope
變量。 從那里,我可以使用以下命令調用其他角度服務: userSubmission.query({user_id: $rootScope.currentUser.id});
等在我的角度控制器中。
另一種選擇是,以產生與所有元數據的JavaScript文件的元數據內容(即metadata.js.erb
中,你讓軌道填充變量(使用<%= =>
是提供給你的整個角度應用。
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.