Devise has a very useful Trackable module used to track user’s sign in count, timestamps and IP address. There are some occasions when you need to disable tracking. For example for API requests where user signs in on every request; for instances where admin might sign in as an user; and similar.

To disable Devise Trackable module you need to set request.env["devise.skip_trackable"] = true. You have to do that before trying to authenticate user, so you’ll want to put it in a before_filter, or even better prepend_before_filter to make sure it’s before authentication.

Add this to your controller in which you want to disable tracking:

prepend_before_filter :disable_devise_trackable

protected
  def disable_devise_trackable
    request.env["devise.skip_trackable"] = true
  end
Tags: ruby, rails, devise, howto, tips

Comments

comments powered by Disqus