根据Railscasts视频Ruby on Rails - Railscasts PRO#138 I18n(修订版)将用户转到domain.com/products重定向到默认语言环境domain.com/en/products我应该添加到我的routes.rb :
match '*path', to: redirect("/#{I18n.default_locale}/%{path}")
match '', to: redirect("/#{I18n.default_locale}")
这不起作用。首先我得到一个错误,说我应该用“get”替换“match”。然后,当我这样做时,我的浏览器出现ERR_TOO_MANY_REDIRECTS错误。
为什么这不起作用的任何想法?非常感谢!
答案 0 :(得分:0)
您可以使用:
get '*path', to: redirect("/#{I18n.default_locale}/%{path}"), constraints: lambda { |req| !req.path.starts_with? "/#{I18n.default_locale}/" }
get '', to: redirect("/#{I18n.default_locale}")