Además de Mattheus. La instrucción
signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
es quizás la mejor declaración general de cierre de sesión, considerando la posibilidad de iniciar sesión con múltiples roles. Si, para usted caso, el usuario se acaba de iniciar sesión como un papel, y se desea conservar el resto de la sesión en signout, la forma más fácil es hacer:
$ git clone git://github.com/plataformatec/devise.git
$ cd devise
$ git branch my_devise
$ git checkout my_devise
aplicación Abrir/controladores/diseñar/sessions_controller.rb en tu editor.En el método de destruir, reemplace
signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
con
signed_out = sign_out(resource_name)
Guardar y salir editor y hacer
$ git commit -am "remove only warden data from session on logout, preserve other data."
en el Gemfile de su proyecto, describir la dependencia de idear como
gem 'devise', :path => "[YOUR PATH]/devise", :branch => "my_devise"
Gracias por todos sus esfuerzos, Matheus. – bloudermilk
Esto parece haber cambiado en el código y sus enlaces no tienen el hash de confirmación en ellos. Hoy, 'Devise.sign_out_all_scopes' es un booleano: https://github.com/plataformatec/devise/blob/ee01bac8b0b828b3da0d79c46115ba65c433d6c8/lib/devise.rb#L220 –