Я использую Devise Invitable и нашел несколько ответов на SO (вот один), которые говорят, что я должен указать действие after_invite_path_for(resource)
в моем Users::InvitationsController < DeviseController
.
Я пробовал это, и это все еще не работает.
Это мой контроллер:
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
сразу после super
в блоке else
... выдает ошибку о том, что перенаправление уже вызвано.
Я считаю, что это правда, потому что если вы проверите источник создайте здесь действие, вы увидите перенаправление.
Это журнал сервера:
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)
Обратите внимание, что он никогда никуда не перенаправляется.