将变量从jquery传递给rails控制器

时间:2012-06-26 16:04:30

标签: jquery ruby-on-rails

我需要将从客户端通过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]时,它总是为零。

任何想法,

由于

1 个答案:

答案 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