ruby-on-rails – 为什么rails没有为我的’匹配’路由生成路由助
发布时间:2020-12-17 03:31:03 所属栏目:百科 来源:网络整理
导读:这是我在config / routes.rb文件中声明的两条路由: namespace :projects do match "proj_rapports_contributeur/select" = 'proj_rapports_contributeur#select',:via = :get match "proj_rapports_contributeur/generate/:id" = 'proj_rapports_contribute
这是我在config / routes.rb文件中声明的两条路由:
namespace :projects do match "proj_rapports_contributeur/select" => 'proj_rapports_contributeur#select',:via => :get match "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate',:via => :get end 这是使用rake路由生成的结果路由和帮助程序: projects_proj_rapports_contributeur_select_fr /hierarchie/rapports_contributeur/selectionner(.:format) projects/proj_rapports_contributeur#select {:locale=>"fr"} projects_proj_rapports_contributeur_select_en /en/projects/proj_rapports_contributeur/select(.:format) projects/proj_rapports_contributeur#select {:locale=>"en"} /hierarchie/rapports_contributeur/generer/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"fr"} /en/projects/proj_rapports_contributeur/generate/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"en"} 我不明白为什么rails没有为第二条路线生成路由助手? 不要对翻译的路线感到惊讶.我正在使用gem’trail-translate-routes’来翻译路线(资源:https://github.com/francesc/rails-translate-routes) ===最终答复更新=== 根据回答者的说法,对于那些想知道结束词的人来说,这里是我将要使用的路线: namespace :projects do get "proj_rapports_contributeur/select" => 'proj_rapports_contributeur#select' get "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate',:as => 'proj_rapports_contributeur_generate' end 这些是由此产生的帮助者: projects_proj_rapports_contributeur_select_fr GET /hierarchie/proj_rapports_contributeur/selectionner(.:format) projects/proj_rapports_contributeur#select {:locale=>"fr"} projects_proj_rapports_contributeur_select_en GET /en/projects/proj_rapports_contributeur/select(.:format) projects/proj_rapports_contributeur#select {:locale=>"en"} projects_proj_rapports_contributeur_generate_fr GET /hierarchie/proj_rapports_contributeur/generer/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"fr"} projects_proj_rapports_contributeur_generate_en GET /en/projects/proj_rapports_contributeur/generate/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"en"} 解决方法
这是因为路由不是简单的路由,它包含一个参数(在您的情况下:id).在这种情况下,您应该使用as手动指定路径名称
match "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate',:via => :get,:as => "your_route_name" 作为旁注,请将match via替换为相应的方法名称. get "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate' 它更短,并且在Rails 4中不推荐匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |