我正在使用Devise进行身份验证。我已经登录到site.After登录后创建用户和公司。如何销毁当前会话并为新创建的用户创建新会话。
请查看代码。
----> sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
# before_action :configure_sign_in_params, only: [:create]
# GET /resource/sign_in
# def new
# super
# end
# POST /resource/sign_in
# def create
# super
# end
# DELETE /resource/sign_out
# def destroy
# super
# end
# protected
# If you have extra params to permit, append them to the sanitizer.
# def configure_sign_in_params
# devise_parameter_sanitizer.permit(:sign_in, keys: [:attribute])
# end
end
----&GT;的routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions'
}
root to: "companies#index"
resources :companies do
end
resources :company_users do
end
end
----&GT; companies_controller
def create
@company = Company.new(company_params)
respond_to do |format|
if @company.save
format.html { redirect_to @company, notice: 'Company was successfully created.' }
format.json { render :show, status: :created, location: @company }
else
format.html { render :new }
format.json { render json: @company.errors, status: :unprocessable_entity }
end
end
end
我在这里创建我的用户和公司。完成此操作后,我想为这个新创建的用户创建会话。
欢迎任何建议,请给出具体答案。非常感谢。
答案 0 :(得分:1)
据我所知,贵公司有很多用户。如果你想登录最近创建的公司的第一个用户,你可以做一些像
这样的事情 reset_session
sign_in @company.users.first
。
reset_session是一个rails方法,它会删除当前会话,而sign_in object
是一个可以用来以任何用户身份登录的设计方法。
这应该有所帮助。