【发布时间】:2016-01-11 16:08:10
【问题描述】:
我的路由文件中有这段代码,所以我需要在范围内获取参数 ':locale'
scope '/:locale', :locale => /it|en|es/ do
# How I can access value of :locale here ?
end
【问题讨论】:
标签: ruby ruby-on-rails-4 routes
我的路由文件中有这段代码,所以我需要在范围内获取参数 ':locale'
scope '/:locale', :locale => /it|en|es/ do
# How I can access value of :locale here ?
end
【问题讨论】:
标签: ruby ruby-on-rails-4 routes
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
【讨论】: