フロントエンドで 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();
}]);
唯一の問題は、上部の工場が機能しないことです。データベース内のすべての送信を出力できますが、current_user の user_id を Angular に伝える方法がわかりません。特定のユーザーのすべての投稿をルート「/api/:user_id/submissions/」から正常にプルするアクションを備えた submits.rb コントローラーがありますが、前述のように、Angular に何を伝えるかわかりません。 current_user.id は、current_user が Rails からのみアクセスできるためです。
私はこれを 1 週間解決しようとしてきましたが、Google 検索であまり助けが見つかりませんでした。どんなアドバイスでも大歓迎です。