我正在重写我的Rails 3.2服务器上的路由,因此语言是URL的一部分。我的routes.rb文件如下:
scope ":lang", :lang => /es|fr|it|pt|en|de/ do
resources :users
end
几乎所有的URL都可以通过附加语言字符串来完美工作,例如:
http://mydomain/es/somecontroller/someaction
问题出在展示动作上,链接无法正常工作。这一行:
<%= link_to "Show", @my_user %>
导致“路由错误”出现,例如:
No route matches {:action=>"show", :controller=>"users", :lang=>##User serialization##}
我在做什么错误的事情吗?
编辑:好了,问题解决了。感谢Cage和一点研究找到了解决方法。
只需要在ApplicationController中添加以下方法即可:
def self.default_url_options
{ :lang => FastGettext.locale }
end
一切都运行得非常顺畅!!根本不需要重新编写链接。