我正在使用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
当我尝试只需添加一个redirect_to root_path
在else
块super
之后....这将引发约重定向错误已经被调用。
我认为这是事实,因为如果您检查create action here的来源,您将看到重定向。
这是服务器日志:
Started POST "https://stackoverflow.com/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)
注意,它从来没有在任何地方重定向。
可能重复的[Rails设计发送邀请后的Invitable重定向](http://stackoverflow.com/questions/12720612/rails-devise-invitable-redirect-after-send-invititaion) –
@PardeepDhingra这是问题和回答我在我的问题中提到。我的问题的整个前提是基于另一个不起作用的事实。 – marcamillion