Магазин активных записей Удалить - PullRequest
4 голосов
/ 09 июля 2010

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

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

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

тоже не работает.

У меня установлена ​​версия rails 2.3.2, ruby ​​1.8.7.

1 Ответ

3 голосов
/ 09 июля 2010

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

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

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

...