活动记录存储删除

发布于 2024-09-08 13:58:52 字数 590 浏览 4 评论 0原文

我在从活动记录存储中删除时遇到问题。

我想根据会话数据删除:

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。

I'm having trouble deleting from active record store.

I want to delete based on the session data:

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

does not seem to work, but:

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

seems to work and:

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

also doesnt work.

I'm running version rails 2.3.2, ruby 1.8.7.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初见你 2024-09-15 13:58:52

您只需将要删除的对象的 ID 传递给 Active Record 的删除方法即可:

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

另一方面,请确定上例中 .data 属性的来源。 Session.find(:all) 将返回一个 Session 对象数组,然后您可以对其进行迭代。会话没有 userid 列,除非您破解默认会话存储来添加它。

You can just pass Active Record's delete method the ID of the object you want to delete:

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

On another note, sure where the .data attribute is meant to be coming from in the above example. Session.find(:all) will return an array of Session objects which you then iterate through. Session does not have a userid column unless you are hacking the default Session store to add it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文