Ruby on rails 3 Rails 3根据操作从同一url获取不同的请求
我正在创建一个ajax请求并构建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时出错,那么
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'
所以有两个问题
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,并且是新的。)