Commit 70c9a846c33c5e7add9a05d4f66118cef2c1d815

Authored by Rafael Manzo
Committed by Eduardo Silva Araújo
1 parent be176cdf
Exists in colab

[Colab] Optional subdirectory route

app/controllers/application_controller.rb
... ... @@ -16,17 +16,25 @@ class ApplicationController < ActionController::Base
16 16 class << self
17 17 # This is necessary for correct devise routing with locales: https://github.com/plataformatec/devise/wiki/How-To:--Redirect-with-locale-after-authentication-failure
18 18 def default_url_options
19   - locale_options
  19 + default = {}
  20 + default.merge!(locale_options)
  21 + default.merge!(subdirectory_options)
20 22 end
21 23  
22 24 def locale_options
23 25 { locale: I18n.locale }
24 26 end
  27 +
  28 + def subdirectory_options
  29 + { subdirectory: 'mezuro' }
  30 + end
25 31 end
26 32  
27 33 # This happens after the *_url *_path helpers
28 34 def default_url_options
29   - self.class.locale_options
  35 + default = {}
  36 + default.merge!(self.class.locale_options)
  37 + default.merge!(self.class.subdirectory_options)
30 38 end
31 39  
32 40 protected
... ...
config/routes.rb
1 1 Rails.application.routes.draw do
2   - scope "mezuro" do
  2 + scope "/(:subdirectory)", subdirectory: /mezuro/ do
3 3 scope "(:locale)", locale: /en|pt/ do
4 4 # We need to manually define OmniAuth routes since the automatic generation does not support the dynamic scope
5 5 devise_for :users, skip: :omniauth_callbacks
... ... @@ -43,8 +43,10 @@ Rails.application.routes.draw do
43 43 post '/modules/:id/metric_history' => 'modules#metric_history', as: 'module_metric_history'
44 44 post '/modules/:id/tree' => 'modules#load_module_tree', as: 'module_tree'
45 45  
46   - root "home#index"
  46 + root "home#index", as: 'locale_root'
47 47 end
  48 +
  49 + root "home#index"
48 50 end
49 51  
50 52 # See comment above for devise_for
... ...