cancancanで権限毎にControllerのロジックを変えたい(current_userの場合とadminの場合)のですが、if文が多くなり困っております。Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。登録してこのコミュニティに参加するどなたでも質問していただけますどなたでも回答していただけます最もよい回答には賛成票が入り、最上位に上がりますホーム質問タグユーザーcancancanで権限毎にControllerのロジックを変えたい(current_userの場合とadminの場合)のですが、if文が多くなり困っております。445件0cancancanのgemを用いて権限管理を前提としたサービスを開発しております。仮に以下のロールがあったとします。admin_userhoge_userpiyo_userこれらのユーザーでadmin_userはすべての情報を知ることができ、それ以外のユーザーはcurrent_userに関連する情報のみ見ることができるといった機能を開発したいです。current_user.articlesendといった処理になるかと思います。今回、権限毎で処理を変えたいControllerが多数あり、if文を量産してしまうことになります。そのため、cancancanやその他gemなどを用いて、そこの処理を完結にまとめられないかなと考えております。cancancanのAbilityクラスなどはまさにそういったことができるのかなと思ったのですが、あくまでcancannotの振り分けしかできないのかなというのが私の理解です。皆さんならこういう用件に対して、どのようにアプローチするのでしょうか?よろしくお願いします。こちらにも別の方が回答を書いています。回答者の時間の無駄ですから、せめて質問同士リンクを貼るくらいの配慮はしてください。明示的に書くことができますね。policy_scope(Article)endポリシーファイルのscopeには、Articleが渡ります。endのではないかと思います。個の銅バッジご回答ありがとうございます。詳細に解説なさって頂けたおかげで、理解することができました。危うく、controller内が条件分岐だらけになりそうだったので大変感謝しております。こちらをもとに、開発を続けていたのですが、権限周りで表題とは別の問題が生じました。こちらについても、宜しければ、ご助言頂けますと幸いです。質問ばかりで大変恐縮ではありますが、よろしくお願いします。13:34また、仰るとおり、load_resourceが今回の表題の問題を解消する鍵となってました。本当にありがとうございます。13:35お役に立てて良かったです!もし解決されたとお考えの場合は、解決済みにマークをされると、他の閲覧者の助けになりますので、ご検討ください。0:56解消済みマークを付けました!この度はありがとうございます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。Dashboardとなります。作成出来ない1次のようなリンクを遷移できるテーブルを作りたい。Dashboardとなります。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。