diff --git a/app/controllers/devise/invitations_controller.rb b/app/controllers/devise/invitations_controller.rb index e5c8c448..d4f572b7 100644 --- a/app/controllers/devise/invitations_controller.rb +++ b/app/controllers/devise/invitations_controller.rb @@ -37,6 +37,7 @@ def edit # PUT /resource/invitation def update + raw_invitation_token = update_resource_params[:invitation_token] self.resource = accept_resource invitation_accepted = resource.errors.empty? @@ -53,6 +54,7 @@ def update respond_with resource, :location => new_session_path(resource_name) end else + resource.invitation_token = raw_invitation_token respond_with_navigational(resource){ render :edit } end end diff --git a/lib/devise_invitable/model.rb b/lib/devise_invitable/model.rb index 8efe06a7..e24f2417 100644 --- a/lib/devise_invitable/model.rb +++ b/lib/devise_invitable/model.rb @@ -304,7 +304,6 @@ def find_by_invitation_token(original_token, only_valid) invitable = find_or_initialize_with_error_by(:invitation_token, invitation_token) invitable.errors.add(:invitation_token, :invalid) if invitable.invitation_token && invitable.persisted? && !invitable.valid_invitation? - invitable.invitation_token = original_token invitable unless only_valid && invitable.errors.present? end