我有一个显示事件列表的页面。单击该事件后,它将转到登录页面,并将会话ID与页面保持一致。当我转到下一页时,它总是发送最后一个会话变量。
<% @events.each do |e| %>
<%= link_to e.event_name, sessions_new_path %>
<%= e.event_start %> - <%= e.event_stop %>
<% session[:event_id] = e.id %>
<%= session[:event_id] %>
<br>
<% end %>
这显示会话[:event_id]存在并存储在变量中,但是当我点击链接时,它将发送循环的最后一个会话[:event_id]。任何想法都会有所帮助。我正在寻找将变量传递到下一页或将其存储到数据库单元中的选项,但不确定会话如何存储在数据库中。
答案 0 :(得分:2)
假设您使用ActiveRecord支持的数据库,您可以通过编辑your_app / config / initializers / session_store.rb将应用程序配置为在数据库中存储会话:
YourApp::Application.config.session_store :active_record_store
请务必注释掉或删除该行:
# YourApp::Application.config.session_store :cookie_store, :key => '_your_app_session'
此外,还有一些auth gems可以在登录后处理将用户重定向到受保护的网页。如果您还没有,请查看Devise和/或authlogic。就个人而言,我更喜欢Devise。