活动记录存储删除
我在从活动记录存储中删除时遇到问题。
我想根据会话数据删除:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您只需将要删除的对象的 ID 传递给 Active Record 的删除方法即可:
另一方面,请确定上例中 .data 属性的来源。 Session.find(:all) 将返回一个 Session 对象数组,然后您可以对其进行迭代。会话没有 userid 列,除非您破解默认会话存储来添加它。
You can just pass Active Record's delete method the ID of the object you want to delete:
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.