我在我的应用程序中使用 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
有人可以建议我如何在邀请控制器中获取当前用户吗?
这是 InvitationsController 中阻止分配 current_user 的行:
prepend_before_filter :require_no_authentication, :only => [:edit, :update, :destroy]
将此添加到您的控制器,current_user 将被分配:
skip_filter :require_no_authentication, :only => :edit
对于
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-