在邀请控制器中获取当前用户

问题描述 投票:0回答:2

我在我的应用程序中使用 devise_invitable gem。 如果用户已经在应用程序中登录并单击接受邀请链接,那么他将被重定向到设计 after_sign_in_path_for。 我想改变它并给用户一些闪现,表明他已在应用程序中签名并且需要在继续之前注销。 单击“接受邀请”链接后,我的控件转到 Users::InvitationsController#edit。但是我无法在邀请控制器中获得 current_user。 我的路线和行动是:

  devise_for :users, controllers: { registrations: "registrations", :invitations => 'users/invitations', sessions: "sessions", confirmations: "confirmations", passwords: "passwords" }

  def edit
    Rails.logger.debug current_user.inspect
    if current_user.present?
      Rails.logger.debug "---current user---"
    else
      render :edit
    end
  end

有人可以建议我如何在邀请控制器中获取当前用户吗?

devise ruby-on-rails-3.2
2个回答
2
投票

这是 InvitationsController 中阻止分配 current_user 的行:

prepend_before_filter :require_no_authentication, :only => [:edit, :update, :destroy]

将此添加到您的控制器,current_user 将被分配:

skip_filter :require_no_authentication, :only => :edit

0
投票

对于

devise_invitable
1.7,

我通过做

得到了
invited_user

invited_user = User.find_by_invitation_token(params[:invitation_token], true)

文档:https://github.com/scambra/devise_invitable/tree/1-7-stable#find-by-invitation-token-

© www.soinside.com 2019 - 2024. All rights reserved.