Rails 很奇怪,Session 取值的问题

douya0808 · 2012年04月27日 · 最后由 douya0808 回复于 2012年04月27日 · 3780 次阅读

用户登录,根据字段 power 是 1 还是 2 判断用户的权限

if @account
      if @account.power==1
        session[:admin]=@account
        redirect_to :controller=>"admin",:action => "admin"
      end

       if @account.power==2
        session[:student]=@account
        redirect_to :controller=>"student",:action => "student"
      end
else
      render :action => "error"
end



然后在 admin.html.erb 和 student.html.erb 中分别写相同的代码:

admin:<%=session[:admin].username%><br/>
student:<%=session[:student].username%>



然后我把 admin 和 student 在同一浏览器的同一页面分别登录了一遍 (为了让 session[:admin] 和 session[:student] 都存有值) 如果我登录的是 student,那么我在 student.html.erb 中只能取得

<%=session[:student].username%>



如果我登录的是 admin,那么我在 admin.html.erb 中只能取得

<%=session[:admin].username%>



我这么作可能没什么实际意义 但是结果确实难住我了-.- 用不同身份登录把 session 都存了一遍,也没有清空 session 的操作,能正常跳转,也就是 redirect_to 被正常执行了上面的存 session 应该也正常,但是每个身份登录只能读取每个身份自己的 session-.-求普照

这样不正常吗?如果每个 session 能读取别的 session 的值,那才是大问题吧。

Session 就不能像你这么用!

@huacnlee -。-我以为 session 像个大垃圾箱我啥都往里扔 扔进去取不出来了

@AlphaLiu 不是别的 session 啊 里面都取不同的名字了 session[:admin],session[:student] 介样 :)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号