Я новичок в Rails и упражнениях. У меня две пользовательские модели: Student и Prof. Я добавил роль администратора в модель Student с перечислением.Авторизация авторизации, когда 2 пользовательских модели + роль администратора
Я хочу, чтобы профиль Prof профиля редактировался владельцем профиля или администратором.
Вот мой код в profile_policy.rb:
def update?
is_owner? || user.admin? if user
end
[...]
def is_owner?
record.prof == user
end
и в моем шоу зрения, я хочу, чтобы показать ссылку «редактировать» только на основе разрешения пандита:
<%= link_to 'Edit', edit_prof_profile_path(@prof.id, @profile.id) if policy(@profile).edit? %>
В мой контроллер приложения У меня есть пользовательский метод current_user, который включает в себя как current_student, так и current_prof.
Проблема заключается в том, что user.admin?
вызывает метод admin на модели Prof, у которого нет такого метода, поэтому я получаю ошибку undefined method admin?
, когда Prof, который не является владельцем, хочет посетить профиль.
Как это исправить?