CanCan を使うとユーザモデルが各リソースに対してアクセスする際の CRUD 権限を付与できるが、 ユーザモデルが複数になった場合、それぞれに異なった権限を設定したくなるかと思います。 例 User モデルと Admin モデルがそれぞれ以下のような役割を持つ ■User ・一般ユーザには各リソースに対して参照権限と修正権限を付与 ・特別なユーザには各リソースに対して作成権限、参照権限、修正権限、削除権限の全てを付与 ■Admin ・カスタマーサポートには各リソースに対して参照権限を付与 ・サービス管理者には各リソースに対して参照権限、修正権限、削除権限を付与 このような場合は、Ability クラスを複数に分けて権限を設定すると、幸せになれます。 モデルを作成して役割を与える 今回はユーザモデルの作成に devise を使用し、役割の判別は Rails 4.1 より追加された enu
![CanCanを使って複数のモデルに対して異なった権限(Ability)を設定する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b45ebec5fe43cd4bddde7e8c27c73b2934afb96d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Q2FuQ2FuJUUzJTgyJTkyJUU0JUJEJUJGJUUzJTgxJUEzJUUzJTgxJUE2JUU4JUE0JTg3JUU2JTk1JUIwJUUzJTgxJUFFJUUzJTgzJUEyJUUzJTgzJTg3JUUzJTgzJUFCJUUzJTgxJUFCJUU1JUFGJUJFJUUzJTgxJTk3JUUzJTgxJUE2JUU3JTk1JUIwJUUzJTgxJUFBJUUzJTgxJUEzJUUzJTgxJTlGJUU2JUE4JUE5JUU5JTk5JTkwJUVGJUJDJTg4QWJpbGl0eSVFRiVCQyU4OSVFMyU4MiU5MiVFOCVBOCVBRCVFNSVBRSU5QSVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MjFiMjgwNTU1ODkyNmNiYzYwYjY4YWI5MTRmYTA3MjE%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbGFzc3kmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWU4OThiNzQzZTI1ZjMxYjU1OGE5YWM1YzJhODVmZjA5%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dc50d19cb1796d7eef425f2cedc51fe7d)