Commit 7695a3ac5d70299de65cfe3315cffb3fc866fc0a

Authored by Rafael Manzo
1 parent b536a5a6

Fixed locale setting by user for turbolinks and devise

Signed-off-by: Daniel Miranda <danielkza2@gmail.com>
app/controllers/application_controller.rb
... ... @@ -10,8 +10,22 @@ class ApplicationController &lt; ActionController::Base
10 10 before_filter :configure_permitted_parameters, if: :devise_controller?
11 11 before_filter :set_locale
12 12  
  13 + # This is necessary for correct devise routing with locales: https://github.com/plataformatec/devise/wiki/How-To:--Redirect-with-locale-after-authentication-failure
  14 + def self.default_url_options
  15 + merge_locale_to_options(super())
  16 + end
  17 +
  18 + # This happens after the *_url *_path helpers
  19 + def default_url_options(options = {})
  20 + self.class.merge_locale_to_options(options)
  21 + end
  22 +
13 23 protected
14 24  
  25 + def self.merge_locale_to_options(options)
  26 + { locale: I18n.locale }.merge options
  27 + end
  28 +
15 29 # :nocov:
16 30 def configure_permitted_parameters
17 31 devise_parameter_sanitizer.for(:sign_up) << :name
... ... @@ -29,8 +43,4 @@ class ApplicationController &lt; ActionController::Base
29 43 end
30 44 end
31 45  
32   - # This happens after the *_url *_path helpers
33   - def default_url_options(options = {})
34   - { locale: I18n.locale == I18n.default_locale ? nil : I18n.locale }.merge options
35   - end
36 46 end
... ...
app/views/layouts/application.html.erb
... ... @@ -78,7 +78,7 @@
78 78 </a>
79 79 <ul class="dropdown-menu" role="menu">
80 80 <% I18n.available_locales.each do |locale| %>
81   - <li><%= link_to(locale.to_s, url_for(locale: locale)) %></li>
  81 + <li><%= link_to(locale.to_s, url_for(locale: locale), data: { no_turbolink: true }) %></li>
82 82 <% end %>
83 83 </ul>
84 84 </li>
... ...
spec/controllers/reading_groups_controller_spec.rb
... ... @@ -121,7 +121,7 @@ describe ReadingGroupsController, :type =&gt; :controller do
121 121 delete :destroy, :id => @subject.id
122 122 end
123 123  
124   - it { is_expected.to redirect_to new_user_session_path }
  124 + it { is_expected.to redirect_to new_user_session_url }
125 125 end
126 126 end
127 127  
... ...