我需要将从客户端通过jquery捕获的变量传递给控制器,以便可以在服务器端使用它。谷歌搜索后,我发现我们可以通过Ajax调用传递它。
的routes.rb
get "mymethod?Id=", :to => "sample#mymethod"
j1.js
$(function(){
var test = 1;
$(.btn).click(function(){
$.ajax({
url: '/mymethod?Id='+ test,
success: function(data) {
}
});
});
});
sample_controller.rb
def mymethod
session[:Id] = params["Id"];
end
当我尝试使用session [:Id]时,它总是为零。
任何想法,
由于
答案 0 :(得分:2)
如果您想在jquery中发出GET请求,那么最好不要这样做:
$.ajax({
url: '/mymethod',
success: function(data){ // anything },
data: { Id: test }
});
因为它为您正确编码和格式化参数。
在rails中,删除routes.rb
中对Id的引用,只需使用控制器中的params
字典即可访问变量ID(此处为info http://rails.nuvvo.com/lesson/6371-action-controller-parameters)