mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added an example and explaination for using an optional path scope for the locale
This commit is contained in:
@@ -231,6 +231,17 @@ end
|
||||
|
||||
Now, when you call the +books_path+ method you should get +"/en/books"+ (for the default locale). An URL like +http://localhost:3001/nl/books+ should load the Netherlands locale, then, and following calls to +books_path+ should return +"/nl/books"+ (because the locale changed).
|
||||
|
||||
If you don't want to force the use of a locale in your routes you can use an optional path scope (donated by the use brackets) like so:
|
||||
|
||||
<ruby>
|
||||
# config/routes.rb
|
||||
scope "(:locale)", :locale => /en|nl/ do
|
||||
resources :books
|
||||
end
|
||||
</ruby>
|
||||
|
||||
With this approach you will not get a +Routing Error+ when accessing your resources such as +http://localhost:3001/books+ without a locale. This is useful for when you want to use the default locale when one is not specified.
|
||||
|
||||
Of course, you need to take special care of the root URL (usually "homepage" or "dashboard") of your application. An URL like +http://localhost:3001/nl+ will not work automatically, because the +root :to => "books#index"+ declaration in your +routes.rb+ doesn't take locale into account. (And rightly so: there's only one "root" URL.)
|
||||
|
||||
You would probably need to map URLs like these:
|
||||
|
||||
Reference in New Issue
Block a user