设计强制登录用户自动登出注销

时间:2016-11-29 19:41:57

标签: ruby-on-rails devise

我想做一些来宾用户功能。创建用户后,我正在强行登录。用户登录成功,current_user可以使用相同的方法。但在那之后,当我重定向到其他控制器时,我丢失了current_user。

 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 个答案:

答案 0 :(得分:1)

如果您的用户无效意味着未通过任何验证,请检查您的用户

user.save user.valid?user.errors

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

相关问题