Ruby on rails jQuery AJAX到Rails 3,在Rails中如何通过数据传递变量?

Ruby on rails jQuery AJAX到Rails 3,在Rails中如何通过数据传递变量?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,Rails 3应用程序。。。。我有以下jQuery正在运行: $.ajax({ url: '/navigations/sidenav', data: "urlpath=" + urlpath, success: function(e){ $("#sideNav-container").slideDown("slow"); } }); urlpath可以是类似“/”或“/projects”或“/authors”之类的路径 我的问题是如何在控制器中获

Rails 3应用程序。。。。我有以下jQuery正在运行:

$.ajax({
    url: '/navigations/sidenav',
    data: "urlpath=" + urlpath,
    success: function(e){
        $("#sideNav-container").slideDown("slow");
    }
});
urlpath可以是类似“/”或“/projects”或“/authors”之类的路径

我的问题是如何在控制器中获取urlpath变量,以便在视图中使用它来确定要返回给用户的sidenav


感谢

在“数据”键的散列中传入urlpath。像这样:

$.ajax({
    url: '/navigations/sidenav',
    data:{"urlpath":urlpath},
    success: function(e){
        $("#sideNav-container").slideDown("slow");
    }
});
然后,这将传递params对象中的urlpath,您可以从控制器访问该对象。所以你可以简单的做

params[:urlpath]

您可以获得传入的URL路径。:)

这是公正的吗?参数[:urlpath]。。。我需要做些什么来防止SQL注入XSS等?有没有担心XSS SQL注入等?因为它只需要一个参数?另外,这似乎是对URL的编码,如何在后端Rails应用程序中对其进行解码?用户是否输入了URL路径?另外,它是在通过ajax发送之前编码的,还是在到达控制器之后编码的?用户没有输入它,但它是从用户可以修改的浏览器URL中获取的。用户也可以发布一个无效的变量来尝试破解系统,对吗?只是好奇params是否能防止这种情况发生,或者我是否需要添加一些额外的东西?我想知道用户是否输入了urlpath来找出编码发生的位置。我制作了一个示例应用程序,它通过数据属性传递url,但没有编码。至于XSS,我认为没有任何风险。您将如何确定渲染哪个侧边栏?使用一个简单的switch或if语句查看urlpath?Ya,使用if语句,它就在这里。。思想?""