私はこのルールを持っています:
can :see_contacts, Profile do |profile|
false
end
そして、このチェック:
- if can? :see_contacts, @profile
# user contacts
問題は、ユーザーの連絡先が常に表示されることです。なんで?
私はこのルールを持っています:
can :see_contacts, Profile do |profile|
false
end
そして、このチェック:
- if can? :see_contacts, @profile
# user contacts
問題は、ユーザーの連絡先が常に表示されることです。なんで?
ああ、常にドキュメントを読んでください。これは私の場合です。
:manage に関する重要なお知らせ。上で読んだように、オブジェクトに対するすべてのアクションを表します。したがって、次のようなものがある場合:
can :manage, User
can :invite, User
最後の :invite ルールをテストすると、常に true になります。なんで?これは、:manage がオブジェクトに対するすべてのアクションを表し、:manage が単にオブジェクトに対する:create、:read、:update、:destroy ではないためです。