나는 cancan 보석을 사용하는 것에 관한 railscast를 지나고 있었다. 그러나 단지 사용자가 그 자신의 쇼 페이지를 구경하는 것을 허락하는 방법에 붙이게된다. 단지 그들의 자신의 리뷰를 업데이트 할 수 있습니다사용자가 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을 변경하여 모든 사용자에게 페이지를 표시합니다.
무엇이 여기에 있습니까?
대단히 감사합니다. 도움에 감사드립니다.
문제는'can : read, : all' 행에 있습니다. 모든 사용자가 모든 페이지를 볼 수 있도록 허용했습니다. – mirelon