我正在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
问题来自show动作,链接不起作用。这一行:
<%= link_to "Show", @my_user %>
导致“路由错误”,如下所示:
No route matches {:action=>"show", :controller=>"users", :lang=>##User serialization##}
我做错了什么?
编辑:好的,找到解决方案。感谢凯奇和一些研究,这就是解决方案。
只需在ApplicationController上使用这样的方法:
def self.default_url_options
{ :lang => FastGettext.locale }
end
一切都完美无瑕!!根本不需要重写链接。
答案 0 :(得分:1)
对于show,edit,destroy你应该传递:path中对象的id否则会显示错误。例如,
<%= link_to "Show", user_path(@my_user.id) %>
的情况下,它会为您提供很多帮助