【发布时间】:2012-05-16 17:54:03
【问题描述】:
我在 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
一切都完美无缺!!根本不需要重写链接。
【问题讨论】:
-
更正:所有带有 :id 的链接都不起作用,例如编辑和销毁链接。只有新的和索引的工作。
标签: ruby-on-rails ruby-on-rails-3 localization internationalization routes