我想从angularjs发送数据到rails服务器。为此,我使用了012j,POST
,DELETE
,UPDATE
方法的angularjs服务。我可以使用GET
方法,但对于其他方法我无法使用,因为我必须将参数发送到服务器,但我无法执行此操作。Angularjs:通过服务发布数据到rails服务器
record.js
:
var app = angular.module('app');
app.controller('RecordCtrl',['$scope','Session','Records', function($scope, Session, Records){
$scope.records = Records.index();
}]);
recordService.js
:
'use strict';
var app = angular.module('recordService', ['ngResource']);
//angular.module('recordService', ['ngResource'])
app.factory('Records', function($resource) {
return $resource('/api/record.json', {}, {
index: { method: 'GET', isArray: true},
create: { method: 'POST' }
});
})
.factory('Secure', function($resource){
return $resource('/api/record/:record_id.json', {}, {
show: { method: 'GET' },
update: { method: 'PUT' },
destroy: { method: 'DELETE' }
});
});
,我通过下面的代码获得轨服务器数据:
class Api::V1::RecordController < Api::V1::BaseController
def index
respond_with(Record.all)
end
def show
@data = Record.find(params[:id]).to_json()
respond_with(@data)
end
def update
@data = Record.find(params[:id])
respond_to do |format|
if @data.update_attributes(record_params)
format.json { head :no_content }
else
format.json { render json: @data.errors, status: :unprocessable_entity }
end
end
end
def create
@data = Record.create(record_params)
@data.save
respond_with(@data)
end
def destroy
@data = Record.find(params[:id])
@data.destroy
respond_to do |format|
format.json { head :ok }
end
end
private
def record_params
params.require(:record).permit(:name)
end
end
我不知道我怎么能发送方法从angularjs控制器到rails服务器。我尝试下面的代码,但我没有成功:
Records.create(function() {
//"name" is the name of record column.
return {name: test3};
});
但我得到以下错误在轨服务器:
Started POST "/api/record.json" for 127.0.0.1 at 2014-08-30 17:55:27 +0430
Processing by Api::V1::RecordController#create as JSON
- 我怎样才能解决这个问题呢?我怎样才能发送参数到rails服务器?
我想发送
delete
方法到rails服务器。我知道我要送record.id
到服务器,我用以下类型://type 1 var maskhare = { record_id: 4}; Secure.destroy(function(){ return maskhare.json; }); //type 2 Secure.destroy(4);
但我得到以下错误在服务器:
开始删除“/ API /记录”在2014-08 127.0.0.1 -30 19:01:21 +0430 ActionController :: RoutingError(没有路由匹配[DELETE]“/ api/record”): 我修复了
recordService.js
中的正确url,但我不知道为什么请求发送到url之前再次。哪里有问题?
的问题不是与轨所以这是一个开始 - Rails的期望,你会调用'删除/ API /记录/:id'但你正在看起来像这样的请求'DELETE/api/record' – Ahmed 2014-08-30 15:33:06
我编辑了我的答案,修复了AngularJS代码。让我知道这是否有效。 – Ahmed 2014-08-30 15:39:23
你可能想要更新上面的代码,以便我可以看到有什么问题。这只是不发送身份证。 – Ahmed 2014-08-30 16:40:46