ruby-on-rails-3 – 用户和管理员使用设计注销并通过RSPEC进行测
发布时间:2020-12-17 02:35:26 所属栏目:百科 来源:网络整理
导读:我在铁路应用程序中使用Devise. 我有两个模型:用户和管理员. 目前,如果我访问用户登录和管理员登录,我可以同时以用户和管理员身份登录. 如果其他人签到,我想强制注销一个.最好的办法是什么? 此外,如果有人有一个很好的方法来测试rspec / capybara,请分享!
我在铁路应用程序中使用Devise.
我有两个模型:用户和管理员. 目前,如果我访问用户登录和管理员登录,我可以同时以用户和管理员身份登录. 如果其他人签到,我想强制注销一个.最好的办法是什么? 此外,如果有人有一个很好的方法来测试rspec / capybara,请分享! 谢谢 解决方法
我会复制Devise控制器并添加一个之前的过滤器,如下所示:
class Users::SessionsController < Devise::SessionsController before_filter :logout_admin,:only => "create" def create super end private def logout_admin # change :admin to :user in the admin's session controller # the sign_out is a devise controller helper that forces sign out sign_out :admin end end 然后,对于测试,您可以通过调用subject.current_user或subject.current_admin来访问功能(控制器)规范中的当前用户,请转到此处:https://github.com/plataformatec/devise以确保包含测试助手,然后尝试以下操作: require 'spec_helper' describe Users::SessionsController do login_admin describe "POST create" do it "should logout admin" do post :create,{:user => {:email => "tester@email.com",:password => "secret"} } subject.current_user.should_not be_nil subject.current_admin.should be_nil end end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |