Нужно создать функционал по удалению пользователя из проекта, удалиться из проекта может пользователь сам себя и автор проекта может удалить любого пользователя по email, для этого:
1) Создать контроллер ProjectMembersController
2) Добавить в контроллер
before_action :authenticate_user!
2) Добавить в routes
resources :projects do
resources :project_members, only: [destroy]
end
3) Создать в контроллере метод destroy
4) В params метода должен быть email пользователя которого будут удалять
5) Найти по id проект
6) Добавить action_policy для проекта метод destroy. В файле app/polices/project_policy должен быть метод
def destroy?
record.members.include?(user) || record.author == user
end
А в методе project_members_controller#destroy после нахождени @project вызвать проверку
authorize! @project
7) Найти пользователя по email
user = User.find_by(email: params[:email])
8) Сделать проверку что пользователь найден иначе сделать редирект на request.referer с сообщением
9) Удалить запись ProjectMember(user:user, project: @project)
10) Сделать редирект на project_path(@project) и вывести сообщение через flash что прошло успешно
11) Написать тесты
Нужно создать функционал по удалению пользователя из проекта, удалиться из проекта может пользователь сам себя и автор проекта может удалить любого пользователя по email, для этого: 1) Создать контроллер ProjectMembersController 2) Добавить в контроллер
2) Добавить в routes
3) Создать в контроллере метод destroy 4) В params метода должен быть email пользователя которого будут удалять 5) Найти по id проект 6) Добавить action_policy для проекта метод destroy. В файле app/polices/project_policy должен быть метод
А в методе project_members_controller#destroy после нахождени @project вызвать проверку
7) Найти пользователя по email
8) Сделать проверку что пользователь найден иначе сделать редирект на request.referer с сообщением 9) Удалить запись ProjectMember(user:user, project: @project) 10) Сделать редирект на project_path(@project) и вывести сообщение через flash что прошло успешно 11) Написать тесты