我一直在使用康康寶石的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
用戶(作者)只能更新thier自己的意見,但能目前通過更改URL來查看所有用戶顯示頁面。
我在這裏錯過了什麼?
非常感謝任何幫助,非常感謝!
問題出在'can:read,:all'這一行。您允許查看所有用戶的所有頁面。 – mirelon 2014-11-13 13:28:18