2010-07-08 2 views
4

У меня возникли проблемы с удалением из активного магазина записей.Активный магазин записей Удалить

Я хочу удалить на основе данных сеанса:

ActiveRecord::SessionStore::Session.find(:all).each do |s| 
    if s.data[:userid] == 1234 
    s.destroy 
    end 
end 

, кажется, не работает, но:

ActiveRecord::SessionStore::Session.delete_all(["updated_at < ?", 12.hours.ago]) 

, кажется, работает и:

ActiveRecord::SessionStore::Session.find(:all).each do |s| 
    if s.data[:userid] == 1234 
    ActiveRecord::SessionStore::Session.delete_all("session_id = ?", s.session_id) 
    end 
end 

также Doesnt Работа.

Я управляю версиями рельсов 2.3.2, ruby ​​1.8.7.

ответ

3

Вы можете просто передать метод удаления активной записи в идентификатор объекта, который вы хотите удалить:

ActiveRecord::SessionStore::Session.delete(1234) 

На другой ноте, уверенный, где .data атрибут предназначается, чтобы приходить из в приведенном выше примере. Session.find (: all) вернет массив объектов сеанса, которые вы затем перебираете. Сессия не имеет столбца userid, если вы не взломали хранилище сеансов по умолчанию, чтобы добавить его.

+0

каждый пользователь, который входит в систему, получает идентификатор пользователя. Если они не входят в систему, то этот идентификатор пользователя равен нулю, поэтому мне не нужно беспокоиться об этом. Благодарю. – Andy

Смежные вопросы