Я скачал ваше репо. Прежде всего, ваша страница регистрации не работает должным образом. Здесь нет обязательных полей имени / фамилии. Я думаю, что вы можете справиться с ними в будущем. Что касается вашего вопроса, cancancan отлично работает, когда я изменил ваши маршруты слагов на маршруты по умолчанию. Вот ошибка, когда я попытался отредактировать покемона, который принадлежит другому пользователю:
CanCan::AccessDenied - You are not authorized to access this page.:
Started GET "/pokemons/2/..." for ::1 at 2019-12-23 11:27:37 +0200
Когда я вернул слаг, это нарушает это поведение, и я могу редактировать всех покемонов. Так что проблема не в CanCanCan, а в конфигурации слагов. Если вы не хотите менять маршруты по умолчанию или использовать FriendlyId , я рекомендую вам использовать такие действия контроллеров, как:
def edit
@pokemon = Pokemon.find_by_slug(params[:slug])
authorize! :edit, @pokemon
end
ПРИМЕЧАНИЕ: вы должны удалить строкуload_and_authorize_resource
Эта конфигурация также возвращает правильную ошибку при попытке редактировать покемона, который не принадлежит пользователю:
Надеюсь, я немного помог.