Skip to content

Instantly share code, notes, and snippets.

@datapimp
Created October 29, 2010 17:05
Show Gist options
  • Save datapimp/653907 to your computer and use it in GitHub Desktop.
Save datapimp/653907 to your computer and use it in GitHub Desktop.
# config/initializers/devise.rb
Devise.setup do |config|
# ... normal setup options
Warden::Manager.before_failure do |env,opts|
request = Rack::Request.new(env)
request.session[:return_to] = request.env['REQUEST_METHOD']=="GET" ? request.env['action_dispatch.request.path_parameters'] : request.env['HTTP_REFERER']
request.session[:return_params] = request.env['action_dispatch.request.request_parameters']
end
# app/controllers/application_controller.br
def after_sign_in_path_for(resource)
if request.session[:return_to].is_a? String
[request.session[:return_to], request.session[:return_params].to_query].join("?")
elsif request.session[:return_to].is_a? Hash
request.session[:return_to].merge!(request.session[:return_params])
else
super
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment