Commit 5a337d1a3abfc8f9d789ec8efd6e41575a416f54

Authored by Rafael Manzo
1 parent f2788c39

[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
... ... @@ -40,8 +40,10 @@ Rails.application.routes.draw do
40 40 # Tutorials
41 41 get '/tutorials/:name' => 'tutorials#view', as: 'tutorials'
42 42  
43   - root "home#index"
  43 + root "home#index", as: 'locale_root'
44 44 end
  45 +
  46 + root "home#index"
45 47 end
46 48  
47 49 # See comment above for devise_for
... ...