ユーザー認証とアクセス許可にCanCanとDeviseを使用しています。
ユーザーは、異なるアクセス許可を持つ自分のアカウントのキーホルダーを指名できます。キーホルダーには、アクセスできるアカウントの ID と同じ「access_id」という属性があります。私が達成しようとしているのは次のとおりです。
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.admin?
can :manage, :all
elsif user.keyholder?
can :read, Folder do |folder|
folder.try(:user) == user.access_id
end
else
can :create, :all
can :manage, :all do |all|
all.try(:user) == user
end
end
end
end
ただし、このコードでは、キー所有者はアクセスするように指定されたアカウントにアクセスできません。これを実現するためにコードを修正するにはどうすればよいですか? ありがとう!