Как пригласить пользователя для проекта с devise_invitable?

77
6

Я создаю приложение, где пользователи могут быть приглашены в конкретный проект/рабочее пространство/команду. Но по умолчанию он позволяет приглашать пользователей в приложение, а не конкретный проект. Этот вопрос кажется очень похожим Как вложить devise_invitable маршрут, чтобы пригласить пользователя к конкретному проекту Кто-нибудь знает, как переопределить invitations_controller в этом случае?

спросил(а) 2021-01-25T15:32:28+03:00 5 месяцев назад
1
Решение
63

Вы можете создать invite в свой projects_controller.rb и пригласить пользователя непосредственно в проект.

Просто присоедините приглашенного User к Project сразу после приглашения. Вот фрагмент, чтобы дать вам представление о том, как вы могли бы подойти к этому.

# POST /projects/:id/invite { name: "John Smith", email: "john@email.com" }
def invite
# Set the current project
@project = Project.find(param[:id])

# Create your own strong_invite_params method to allow name and email
invited_user = User.invite!(strong_invite_params, current_user)

# If a simple belongs_to :project association
invited_user.update(project: @project.id)

# If a complex association through a separate projects_membership table
invited_user.projects << @project
end

ответил(а) 2021-01-25T15:32:28+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема