Ruby on rails 有要求的轨道布线

Ruby on rails 有要求的轨道布线,ruby-on-rails,routing,Ruby On Rails,Routing,通过以下途径,我试图实现这样的目标:我可以使用不同的URL以不同的语言呈现静态资源,如使用条款、印记等 我为我的印记定义了两个示例路线,如下所示: map.imprint ':lang/impressum', :controller => "statics", :action => "imprint", :requirements => {:lang => /de/} map.imprint ':lang/imprint', :controller => "stat

通过以下途径,我试图实现这样的目标:我可以使用不同的URL以不同的语言呈现静态资源,如使用条款、印记等

我为我的印记定义了两个示例路线,如下所示:

map.imprint ':lang/impressum', :controller => "statics", :action => "imprint", :requirements => {:lang => /de/}
map.imprint ':lang/imprint', :controller => "statics", :action => "imprint", :requirements => {:lang => /en/}
<%= link_to(t(statics.imprint.linkname), imprint_url(:lang => session[language])) %>
imprint_url failed to generate from {:controller=>"statics", :lang=>"de", :action=>"imprint"}, expected: {:controller=>"statics", :action=>"imprint"}, diff: {:lang=>"de"}
现在在我看来,我尝试像这样使用path/url帮助器:

map.imprint ':lang/impressum', :controller => "statics", :action => "imprint", :requirements => {:lang => /de/}
map.imprint ':lang/imprint', :controller => "statics", :action => "imprint", :requirements => {:lang => /en/}
<%= link_to(t(statics.imprint.linkname), imprint_url(:lang => session[language])) %>
imprint_url failed to generate from {:controller=>"statics", :lang=>"de", :action=>"imprint"}, expected: {:controller=>"statics", :action=>"imprint"}, diff: {:lang=>"de"}
有人能帮忙吗

谢谢。
Jason

据我所知,你无法将两条路线映射到同一个名称

您需要重命名其中一个,即
地图印模
地图印记


当Rails查找路线时,它将在找到的第一条路线处停止,这就是“de”链接工作的原因。

。。。好像是这样。希望:需求将丢弃“错误”路线,以便选择下一条路线。显然不是。谢谢,这对我有帮助。@Jason我希望是这样。事实上,我在几周前做了同样的假设。Rails很聪明,但没那么聪明;)