Ruby on rails 正确使用angularjs rails资源查询
我正在使用angularjs rails资源,并且我已经设置了一个服务。我有一个属于某个用户的联盟表,因此联盟表的列是id、name和user\u id。我正在尝试为某个指定用户提取所有联盟 这是密码。每次我使用它,所有的联赛都会被退回。我很确定我没有正确定义服务。任何帮助都将不胜感激 league_service.jsRuby on rails 正确使用angularjs rails资源查询,ruby-on-rails,angularjs,ruby-on-rails-4,Ruby On Rails,Angularjs,Ruby On Rails 4,我正在使用angularjs rails资源,并且我已经设置了一个服务。我有一个属于某个用户的联盟表,因此联盟表的列是id、name和user\u id。我正在尝试为某个指定用户提取所有联盟 这是密码。每次我使用它,所有的联赛都会被退回。我很确定我没有正确定义服务。任何帮助都将不胜感激 league_service.js 'use strict'; /* Services */ var ffpServices = angular.module('ffpServices', ['rails'])
'use strict';
/* Services */
var ffpServices = angular.module('ffpServices', ['rails']);
ffpServices.factory('League', ['railsResourceFactory', function (railsResourceFactory) {
return railsResourceFactory({
url: '/api/v1/leagues',
name: 'league'
}); }]);
leagues_controller.js
'use strict';
/* Controllers */
var ffpControllers = angular.module('ffpControllers', []);
ffpControllers.controller('LeagueCtrl',
function ($scope, $routeParams, League) {
$scope.leagues = League.query({ user_id: $routeParams.userId });
$scope.leagues.then(function (results) {
$scope.leagues_data = [];
$scope.leagues_data = results;
$scope.lempty = false;
if ($scope.leagues_data.length < 1) {
$scope.lempty = true;
}
}, function (error) {
console.log(error);
});
});
leagues_controller.rb
class Api::V1::LeaguesController < ApplicationController
respond_to :json
def index
@leagues = League.all
render json: @leagues
end
def show
@league = League.find(params[:id])
render json: @league
end
def create
@league = current_user.leagues.new(league_params)
respond_to do |format|
if @league.save
format.json { head :created, location: league_path(@league) }
else
format.json { head :unprocessable_entity }
end
end
end
private
def league_params
params.require(:league).permit(:name)
end
end
请发布您的leagues_controller.rbI添加了leagues_controller.rb。再想一想,我想我需要在api中创建一个新的部分来返回我想要的结果,因为angularjs rails资源似乎只是用于包装rails资源,仅此而已。在索引操作中,您将返回所有记录,相反,您应该在where子句中使用user_id来过滤特定用户的id,并返回该League.whereuser_id:params[:user_id]