【发布时间】:2017-01-18 22:42:33
【问题描述】:
我正在使用activerecord-session_store gem 将会话存储在数据库中。
我在我的 SessionsController 中使用此方法列出会话:
def index
@sessions = Session.all
end
但是,这会列出应用程序中的所有会话,而不仅仅是当前登录用户的会话。会话的数据库表具有以下列:id, session_id, data, created_at, updated_at,因此没有要过滤的 user_id 列。
我可以用Marshal.load(Base64.decode64(session.data))['user_id']访问会话数据中的user_id
如何使用这些数据来过滤列表?到目前为止,我能想到的只是在视图中做一个条件,将它与current_user.id进行比较
例如
<% @sessions.each do |session| %>
<% if Marshal.load(Base64.decode64(session.data))['user_id'] == current_user.id %>
<!-- LIST SESSION -->
<% end %>
<% end %>
【问题讨论】:
标签: ruby-on-rails ruby session