Ruby on Rails重定向I18n

时间:2015-07-06 10:23:08

标签: html ruby ruby-on-rails-4

根据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错误。

为什么这不起作用的任何想法?非常感谢!

1 个答案:

答案 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}")