Я использую драгоценный камень pundit и пытаюсь выяснить, как его использовать, чтобы предотвратить доступ к странице индекса, принадлежащей пользователю, отличному от current_user.Страница индексов драгоценных камней Pundit Предотвращение доступа
В примерах рассказывается только о том, как отображать результаты в current_user, но не как фактически предотвратить доступ к самой странице, если current_user НЕ является владельцем записи.
Любая помощь приветствуется
Спасибо
Я думаю, что индексная страница не принадлежит ни одному пользователю. Цель состоит в том, чтобы ограничить доступ только администраторов? – moveson
@moveson Это индексная страница для конкретного пользователя, там есть страница. Возможно, это не должна быть страница индекса, а отдельное действие в пользовательском контроллере, например user_posts. – Robbo
Это будет иметь для меня больше смысла. Образец, описанный ниже, должен работать; просто замените 'index?' на 'user_posts?'. См. Комментарий от @Fede Bonisconti ниже для альтернативного предложения относительно того, где поставить логику 'authorized_to_edit? '. Если вы включите его где-нибудь, кроме модели User, вам нужно будет вызвать 'authorized_to_edit? (Current_user)' вместо 'current_user.authorized_to_edit?' – moveson