0

cancan を使用して Rails で承認をサポートするアプリケーションを作成するには、開発者がロール メソッドを決定する必要があります。ここで、自分の場合に最適なものを見つける必要があります。これは、従来のユーザーごとに 1 ロールのモデルです。

私が見つけた方法は、私から見るとかなり似ているようです。ロールモデルを選ぶ際に本当に技術的な違いがあるのでしょうか、それとも単に好みの問題なのでしょうか? 技術的な違いがある場合、特にスケーリングに関して、モデルを選択する際のトレードオフは何ですか?

私が見つけたいくつかの可能なモデル:

コメントでこれらのアプローチを比較する記事のポイントは高く評価されます。それらを比較する資料があまり見つからなかったからです。

4

1 に答える 1

1

1 回の使用で 1 つの役割だけが必要な場合は、最も単純な方法を使用してください。

  1. ユーザーに単一の文字列フィールドを追加します。「役」と呼ばれる。
  2. 値を保持する配列を User に追加します。ROLES = %w{System\ Admin Admin Customer Etc}
  3. ロールを簡単に確認できるように、いくつかのヘルパー メソッドをユーザーに追加します (つまり、user.admin?)。

ロール ヘルパー:

ROLES.each do |role_name|
  define_method "#{role_name.downcase.tr(" ", "_")}?" do
    role == role_name
  end
end

将来必要に応じて、より複雑なオプションを簡単に活用できます。

于 2013-09-07T23:27:06.460 に答える