Rails 设计阻止在注册后立即登录而不使用 Confirmable [英] Rails Devise prevent login immediately after Signup without using Confirmable
本文介绍了Rails 设计阻止在注册后立即登录而不使用 Confirmable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
用例:
- 管理员应该能够创建用户,并且不应尝试登录.
- 公共用户可以创建帐户,注册后他应该被重定向到登录页面,而不是立即登录.
有人可以帮我吗?
谢谢:)
推荐答案
你需要做的是覆盖 Devise 的 RegistrationsController 创建方法.
What you need to do is to override Devise's RegistrationsController create method.
在这里有一个很好的解释.
这是设计创建操作:
# POST /resource
def create
build_resource
if resource.save
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
respond_with resource
end
end
覆盖控制器后,只需删除 sign_in(resource_name, resource)
After you override the controller, just remove sign_in(resource_name, resource)
您还可以设置方法 after_sign_up_path_for(resource)
以满足您的需要
You can also set the method after_sign_up_path_for(resource)
to fit your needs
这篇关于Rails 设计阻止在注册后立即登录而不使用 Confirmable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文