Rails 为某些 url 本地化没有语言环境参数的路径

Rails localize path without locale param for certain url

我是 Rails 的新手,正在为我的 rails 项目构建本地化。我已遵循 Rails i18n 指南,并且能够使用本地化路径访问不同语言版本的网站。

我的 routes.rb 如下所示:

scope "/:locale" do
  # blah
end

namespace :admin do
  # admin blah
end

然而,因为我按照 Rails 指南中的建议在应用程序控制器中使用了 default_url_options,所以 URL 助手生成的路径也将包含语言环境参数。当我为我的管理员根 localhost:3000/admin?locale=en 创建 link 时,我会收到一条错误消息 "admin" is not a valid locale

有没有办法让生成的 url 不包含语言环境参数?

我终于找到了解决方法。我需要做的就是将管理命名空间路由放在作用域路由之前,例如

namespace :admin do
  # admin blah
end

scope "/:locale" do
  # blah
end

按照上面的方法设置后,错误消失了。