There is a way provided by devise gem to skip the Trackable fields updates for a specific request. Devise uses a condition as :
if record.respond_to?(:update_tracked_fields!) && warden.authenticated?(options[:scope]) && !warden.request.env["devise.skip_trackable"] Above condition can be found at https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/trackable.rb#L6 In whichever request you want to skip the Trackable fields updates you just need to set an variable *devise.skip_trackable* from environment as : prepend_before_filter { env["devise.skip_trackable"] = true } This will skip the updating of following columns: 1. sign_in_count 2. current_sign_in_at 3. last_sign_in_at 4. current_sign_in_ip 5. last_sign_in_ip Please refer https://github.com/plataformatec/devise/issues/953#issue-717719for more details. On Saturday, May 3, 2014 8:43:21 AM UTC+5:30, Ankur wrote: > > > I am using switch_user <https://github.com/flyerhzm/switch_user> rails > gem to login as any other devise user from an admin account. When I use > switch_user for an account, the devise session updates all the devise > trackable attributes for that user such as: > > t.integer "sign_in_count", > t.datetime "current_sign_in_at" > t.datetime "last_sign_in_at" > t.string "current_sign_in_ip" > t.string "last_sign_in_ip" > > which I don't want to happen. These updates should happen only when an end > user actually logs in and not for an admin account through switch_user. > > How can I achieve this? > > Thanks. > -- > Regards, > Ankur > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/c81ed001-db2a-4cc3-8c2c-9217dc21622a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

