【发布时间】:2015-12-02 09:09:04
【问题描述】:
我正在使用 Devise Invitable,我在 SO (here is one) 上找到了一些答案,说我应该在我的 Users::InvitationsController < DeviseController 中指定操作 after_invite_path_for(resource)。
我试过了,还是不行。
这是我的控制器:
class Users::InvitationsController < Devise::InvitationsController
def after_invite_path_for(resource)
root_path
end
def create
@member ||= Member.find_or_create_by(email: params[:user][:email], first_name: get_first_name(params[:user][:full_name]), last_name: get_last_name(params[:user][:full_name]), bio: params[:user][:bio], gender: params[:user][:gender])
@membership ||= Membership.find_or_create_by(member: @member, family_tree: current_user.family_tree, inviter: current_user, relation: params[:user][:invitation_relation])
if @user_exists ||= invited_user_exists(params[:email])
else
super
end
end
end
当我尝试在 else 块中的 super 之后添加一个 redirect_to root_path 时......它会引发关于重定向已调用的错误。
我相信这是真的,因为如果您检查 create action here 的来源,您会看到重定向。
这是服务器日志:
Started POST "/users/invitation" for 127.0.0.1 at 2015-12-02 03:58:57 -0500
Processing by Users::InvitationsController#create as HTML
Rendered users/mailer/invitation_instructions.html.erb within layouts/mail (1.2ms)
# truncated for brevity
Rendered users/invitations/create.html.erb within layouts/devise (0.6ms)
Rendered shared/_navbar.html.erb (1424.4ms)
Completed 200 OK in 9221ms (Views: 4732.1ms | ActiveRecord: 102.0ms)
请注意,它永远不会重定向到任何地方。
【问题讨论】:
-
@PardeepDhingra 这是我在问题中引用的问题和答案。我的问题的整个前提是基于另一个不起作用的事实。
标签: ruby-on-rails ruby-on-rails-4 devise devise-invitable