Use una llamada estándar a ActiveRecord en Rails 3.2. Para la fecha, pase un valor que coincida con la duración de su duración "Recordarme". En mi ejemplo, esto borrará TODAS las sesiones que han estado inactivas durante dos semanas.
ActiveRecord::SessionStore::Session.delete_all(["updated_at < ?", 2.weeks.ago])
Como se indica por @journeyer a continuación, si se utiliza la gema Devise, se puede hacer referencia a la configuración de la Devise'.
ActiveRecord::SessionStore::Session.delete_all(["updated_at < ?", Devise.remember_for.ago])
Si usa la gema de Hechicería, se puede hacer referencia a la configuración de la Hechicera.
ActiveRecord::SessionStore::Session.delete_all(["updated_at < ?", User.sorcery_config.remember_me_for.ago])
gracias, voy a usar esto. – Anand
El equivalente de Postgres: 'sql =" ELIMINAR DE LAS SESIONES DONDE updated_at <(CURRENT_TIMESTAMP - INTERVALO '1 días'); "' – kgx
Eso es genial. También recomendaría mantener sus sesiones en un db nosql en lugar de allí. Quizás Redis. Golpear el DB real es demasiado caro de un viaje – lsaffie