我在 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
一切都完美无缺!根本不需要重写链接。