TIL #2: How to Always Include Language Code in Your Rails App URLs

In today's TIL...
Ruby on Rails!
When you're developing the multi-language application at some point you may encounter the need to always include language code in your URLs.
1. Always have language code in your URLs.
2. Redirect user to correct URL when someone tried to reach your app without language code given.
All you need to do is change slightly your config/routes.rb. Here you go:
# config/routes.rb
MyApp::Application.routes.draw do
scope "/:locale", locale: /#{I18n.available_locales.join("|")}/ do
# your routes go here
root to: "home#index"
end
root to: redirect("/#{I18n.default_locale}", status: 302), as: :redirected_root
get "/*path", to: redirect("/#{I18n.default_locale}/%{path}", status: 302),
constraints: { path: /(?!(#{I18n.available_locales.join("|")})\/).*/ },
format: false
end
Simple, isn't it?
TIL, or Today I Learned, is where our developers share the best tech stuff they found every day. You can find smart solutions for some issues, useful
Photo by Sara Riaño on Unsplash