2016-11-29 37 views
1

我想做一些访客用户功能。创建用户后,我正在强制登录。用户登录成功并且current_user可用相同的方法。但在此之后,当我重定向到其他控制器时,我丢失了current_user。设计强制登录用户去注销automaitcaly

class Notloggedin::AccountRequestsController < Notloggedin::BaseController 
    def create 
    params[:account_request][:user_attributes][:email] = params[:account_request][:contact_email] 
    params[:account_request][:user_attributes][:first_name] = params[:account_request][:contact_name] 
    params[:account_request][:user_attributes][:guest] = true 
    user = User.where(email: params[:account_request][:contact_email], guest: false) 
    @account_request = AccountRequest.new(permitted_account_request_params) 
    if user.empty? && @account_request.user.skip_confirmation! && @account_request.office.save && @account_request.save 
     @account_request.user.administrated_offices << @account_request.office 
     sign_in(:user, @account_request.user) 
     redirect_to edit_dentistry_path(@account_request.office.slug, step: 3) 
    else 
     if user.present? 
     flash[:alert] = 'You already have account with this email please login and create clinic from admin section.' 
     else 
     flash[:alert] = "#{@account_request.office.errors.full_messages.join(', ')} #{@account_request.errors.full_messages.join(', ')}" 
     end 
     redirect_to request.referrer 
    end 
    end 

    private 

    def permitted_account_request_params 
    params.require(:account_request).permit! 
    end 
end 

回答

1

这一定是这个原因,如果你的用户是无效的,这意味着任何验证失败,请检查您的用户对

user.saveuser.valid?user.errors

尝试这些,你会看到背后的问题这,这不是在设计它的理解问题的错误:)