使用区域设置但不带查询字符串的根路径提供轨道



我想将 i18n 应用于应用程序的根路径。Rails i18n指南建议:

当然,您需要特别注意应用程序的根URL(通常是"主页"或"仪表板"(。像 http://localhost:3001/nl 这样的 URL 不会自动工作,因为 routes.rb 中的根目录 to: "books#index" 声明不会考虑区域设置。(这是正确的:只有一个"根"URL。

您可能需要映射如下网址:

# config/routes.rb
get "/:locale" => "dashboard#index"

但是,在使用 URL 帮助程序时,此配置不能很好地工作。以下内容生成一个包含查询字符串的 URL:

root_path(locale: "fr") # => "/?locale=fr"

但是我想生成一个在路径中包含区域设置的 URL:

/fr

通过定义rootlocale_root

# config/routes.rb
root to: "dashboard#index"
scope "/:locale" do
get "/", to: "dashboard#index", as: :locale_root
end

然后,您可以使用locale_root_pathlocale_root_url帮助程序:

locale_root_path(locale: "fr") # => "/fr"

相关内容

  • 没有找到相关文章

最新更新