Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails 3根据操作从同一url获取不同的请求_Ruby On Rails 3_Url_Routes - Fatal编程技术网

Ruby on rails 3 Rails 3根据操作从同一url获取不同的请求

Ruby on rails 3 Rails 3根据操作从同一url获取不同的请求,ruby-on-rails-3,url,routes,Ruby On Rails 3,Url,Routes,我正在创建一个ajax请求并构建url,如下所示: function submitYear(year){ new Ajax.Request('update_make/'+year, { method: 'get'}); } 当我在为我的car_infos控制器执行新操作时,这个Ajax请求工作得很好。我收到一个请求,上面写着: 开始获取“/car\u infos/car\u infos/update\u make/2011” 路线匹配,一切正常。但是,如果创建url时出错,那么

我正在创建一个ajax请求并构建url,如下所示:

    function submitYear(year){
    new Ajax.Request('update_make/'+year, { method: 'get'});
}
当我在为我的car_infos控制器执行新操作时,这个Ajax请求工作得很好。我收到一个请求,上面写着:

开始获取“/car\u infos/car\u infos/update\u make/2011”

路线匹配,一切正常。但是,如果创建url时出错,那么当我的ajax请求触发时,我会得到一个路由错误:

已开始获取“/update\u make/2002” 没有路线匹配“/update\u make/2002”

以下是创建失败时控制器中发生的情况:

format.html { render :action => "new" }
我理解为什么会出现路由错误,因为我没有将路由设置为/update\u make/。这是我的路线

    match 'car_infos/update_make/:year', :controller => 'car_infos', :action => 'update_make'
所以有两个问题

  • 当url从car\u infos/new更改为car\u infos时,为什么我的get请求会更改

  • 当我在javascript中创建url时,如何解决这一问题?这两种情况都适用?我不认为为更新制定路线是答案。如果重定向到/new,则会丢失字段值和错误消息

  • 谢谢

  • 您正在将ajax请求发送到相对路径,因此,如果浏览器位置路径更改,请求路径也会更改。由于Rails或javascript中的重定向,浏览器位置路径可能正在更改

    这是一个打字错误(2x“/汽车信息”)

    开始获取“/car\u infos/car\u infos/update\u make/2011

  • 您可以在javascript中拼写出绝对url:

    function submitYear(year){
        var absoluteUrl = 'http://' + window.location.host +
                            '/car_infos/update_make/' + year;
        new Ajax.Request(absoluteUrl, { method: 'get'});
    }
    

  • 感谢您提供的信息和代码。我有一个javascript函数,可以解析url并根据结果构建不同的url。这更干净了。(是的,我一定是在url中添加汽车信息时复制了get from,并且是新的。)