/ / Usando idear invitable. Cómo crear el usuario solo después de que el usuario haya establecido su contraseña: ruby, ruby-on-rails-4, idear-invitable

Utilizando dispositivos invitables. Cómo crear el usuario solo después de que el usuario haya establecido su contraseña: ruby, ruby-on-rails-4, invise-invitable

def create
if User.invite!(user_params)
flash[:success] = t("flashes.users.create_success")
else
flash[:error] = t("flashes.users.create_error")
end
redirect_to company_path(id: company.slug)
end

User.invite! creará el usuario, luego enviará una invitación para establecer una contraseña. Solo quiero que envíe una invitación para establecer la contraseña y luego solo persista al usuario si el usuario ha establecido una contraseña.

Respuestas

1 para la respuesta № 1

No me molestaría con la implementación invitable de ese tipo.

Quizás prefiera agregar una columna de estado al usuario utilizando enumeraciones, para que pueda aislar a los usuarios que no han aceptado sus invitaciones y, como dijo uno de los comentaristas, eliminar a los usuarios obsoletos más tarde.

enum status: {invited: 0, accepted: 1}

entonces puedes hacer lo siguiente:

User.invite!(status: "invited")

deberá establecer el estado "aceptado" cuando el usuario acepte enganchando las devoluciones de llamada que proporciona la gema (consulte https://github.com/scambra/devise_invitable)