我试图使用闭包库中的goog.net.XhrIo
执行Ajax调用。我想在Post请求中发送一些参数,并将它们提供给Rails应用程序。这里是我的Ajax调用:
goog.require('goog.net.XhrIo');
goog.require("goog.structs.Map");
goog.require("goog.Uri.QueryData");
function doRequest() {
var request = new goog.net.XhrIo();
var qd = goog.Uri.QueryData.createFromMap(new goog.structs.Map({
title: "Test ajax data",
content: "foo",
param1: 70
}));
goog.events.listen(request, goog.net.EventType.COMPLETE, function(){
console.log("Success!");
});
request.send('http://localhost:3000/some_method', 'POST', qd.toString());
}
然后在Rails中:
def some_method
@my_variable = ModelName.find(params[????])
end
问题是我不知道如何访问Rails应用程序中的参数。我甚至不确定我在做Post请求时,参数是很容易访问的。
发布于 2013-09-22 10:12:22
我不确定这是最好的方法,但最终还是成功了。
JavaScript:
goog.require('goog.net.XhrIo');
var updateQuizStats = function(result) {
var request = new goog.net.XhrIo();
goog.events.listen(request, goog.net.EventType.COMPLETE, function(){
console.log("YES! YES! YES!");
});
request.send('http://localhost:3000/some_method/'+param1+'/'+param2);
}
Rails routes.rb:
match '/some_method/:param1/:param2', :to => 'controller_name#some_method'
在主计长中:
def some_method
@my_variable = ModelName.find(params[:param1])
@my_variable.update_attributes(:some_attribute => params[:param2])
end
如果有更好的方法的话。
https://stackoverflow.com/questions/18908859
复制相似问题