Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 路由错误-AJAX调用中没有路由匹配_Ruby On Rails_Jquery_Routing - Fatal编程技术网

Ruby on rails 路由错误-AJAX调用中没有路由匹配

Ruby on rails 路由错误-AJAX调用中没有路由匹配,ruby-on-rails,jquery,routing,Ruby On Rails,Jquery,Routing,我知道有很多关于路由错误的意见书,但即使在阅读了其中的许多内容并查看了路由指南之后,我仍然无法解决我的问题 我已经创建了一个Ajax提交表单,如- $('#user_time_zone').live('change', function() { $(this).parents('form:first').submit(); }); 然而,在这个事件中,我得到了路由错误 No route matches '/user/time_zone' 我的路线就是这样 user_time_zo

我知道有很多关于路由错误的意见书,但即使在阅读了其中的许多内容并查看了路由指南之后,我仍然无法解决我的问题

我已经创建了一个Ajax提交表单,如-

$('#user_time_zone').live('change', function() {    
  $(this).parents('form:first').submit();
});
然而,在这个事件中,我得到了路由错误

No route matches '/user/time_zone'
我的路线就是这样

user_time_zone POST   /user/time_zone(.:format)           {:controller=>"user", :action=>"time_zone"}
在路由文件中,我有如下条目-

match 'user/time_zone' => 'user#time_zone', :via => [:post]

我可能做错了什么。

也许您发送了一个带有方法GET的表单。

表单
\u method=put

你能从development.log发布请求日志并用表单查看吗?

试着运行

rake routes 
看到你所有的路线都被截获了

如果你能粘贴你的路线,我们可能会帮助你

谢谢和问候


sameera

事实上,表单_method=put中有一个隐藏字段。这是由Rails代码生成的。我已将表单声明为-form_for(@user,:url=>user_time_zone_path,:method=>:post,:remote=>true)do | f |。我如何删除它。也许我做错了什么。生成的表单有一个CSS类edit\u user。我也在使用designe,所以这也添加了一些/user/*类型的路由。更新:我已经将HTTP方法更改为通过匹配'user/time\u zone'=>'user\time\u zone',:via=>[:PUT]放入路由,并且似乎可以工作。谢谢我不知道为什么手动放置隐藏的div对我有效。也许ajax加载表单生成器会把事情搞砸。感谢您的提示。由于长度原因,无法发布完整的路由文件,但已在原始邮件中给出了从rake routes获取的相关路由。我正在使用Desive,不过它也添加了一些/user/*类型的路由,但它们低于此路由规范