koheitakahashiのブログ

2020.07.01にプログラマーとして生を受けた私が学んだことや、日常について徒然に書いていきます。

Sendagaya.rb #296 に参加させていただきました

はじめに

Sendagaya.rbに参加させていただくのは、これで2回目になります。

sendagayarb.doorkeeper.jp

今回は、前回よりも少しだけみなさんが話されている内容を理解することができました。 そこで、学んだことを簡単にではありますが、まとめたいと思います💪

学んだこと

権限管理とは?

管理者と一般ユーザーという区分けがありますが、それよりももっと細かく「このユーザーにはここまでの権限を持たせよう」などというように管理することです。

管理者権限にはどんなgemが使われているのか?

勉強会で紹介された以下のサイトがとても勉強になりました。

権限管理のgemで良いのはどれ? - おもしろwebサービス開発日記

自分なりにまとめてみると・・・

  • 権限管理に使われているgemは大きく分けて3つあります。
    1. cancancan
    2. pundit
    3. banken

それぞれの特徴を簡単にまとめると・・・

  1. cancancanは権限管理のためのAbilityクラスを作成し、そのクラスに、権限ごとにDSLを使って権限を設定していきます。 → しかし、Abilityクラスが肥大化するという問題点が・・・

  2. Punditは、モデルごとに、Policyクラスを作成し、Actionごとに権限を設定していきます。 → モデルごとにPolicyクラスを作成するため、複数のコントローラーで特定のモデルを扱う場合には向いていない・・・

  3. bankenは、コントローラーごとにLoyaltyクラスを作成するします。 → cancancanとPunditの問題点を克服‼️

というもののようです。

最後に

勉強会に参加すると、やはりモチベーションが上がります。 ただ、現段階では、ただの置き物になっているので、皆さんに投げかけられるようなテーマを、日々の学習で見つけていきたいです‼️(中々難しいとは思いますが・・・💦)