Как я могу разрешить пользователь может посещать только свою собственную страницу шоу с помощью cancan?

Я просматривал обзор использования драгоценного камня канкан, но застрял на том, как разрешить пользователю посещать только его собственную страницу шоу.

Мой код выглядит следующим образом:

Модель возможностей

class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new # guest user (not logged in)
    if user.role == "admin"
      can :manage, :all
    else
      can :read, :all
      if user.role == "author"
        can :create, Review
        can :update, Review do |review|
          review.try(:user) == user
        end
        can :update, User do |user|
          user.try(:current_user) == current_user
        end
      end
      if user.role == "owner"
        can :update, Venue
      end
    end
  end
end

Контроллер пользователя

class UsersController < ApplicationController
  load_and_authorize_resource
end

Пользователь (автор) может обновлять только свои собственные обзоры, но в настоящее время может просматривать все страницы показа пользователей, изменяя URL.

Что я здесь отсутствует?

6
задан Jason Aller 29 June 2018 в 21:02
поделиться