我的路由文件中有这段代码,所以我需要在范围内获取参数 ':locale'
scope '/:locale', :locale => /it|en|es/ do
# How I can access value of :locale here ?
end
最佳答案
This博客很好地解释了您要实现的目标。
我们的想法是,您可以使用 I18n.available_locales
和 I18n.default_locale
来做几乎所有您想做的事情。
# resources
scope "/:locale", locale: /#{I18n.available_locales.join("|")}/ do
resources :posts
end
# default url
root to: redirect("/#{I18n.default_locale}", status: 302), as: :redirected_root
# constraint to redirect when no valid locale is specified
get "/*path", to: redirect("/#{I18n.default_locale}/%{path}", status: 302),
constraints: {path: /(?!(#{I18n.available_locales.join("|")})\/).*/}, format: false
为了回答您的问题,以下是您如何使用当前语言环境
scope "/:locale", locale: /#{I18n.available_locales.join("|")}/ do
root to: redirect("/%{locale}/posts", status: 302)
end
关于ruby - 我可以从范围访问一个参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726058/