Я просматривал обзор использования драгоценного камня канкан, но застрял на том, как разрешить пользователю посещать только его собственную страницу шоу.
Мой код выглядит следующим образом:
Модель возможностей
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.
Что я здесь отсутствует?