2016-12-09 23 views
1

私は、rolifyのチュートリアルに従って、基本的な使い方を学びました。 https://github.com/RolifyCommunity/rolify/wiki/Devise---CanCanCan---rolify-TutorialRails:Rolifyに動的にロールを作成する方法

私がロールを作成するためにできる唯一の方法は、コンソールにuser.add_role "admin"のようなものです。 私が望むのは、リソースのアクションを追加してロールを作成することです。その後、管理ユーザーはロールをユーザーに割り当てることができます。 これを達成する方法がわかりません、私は私の目的を示す草案を作った。 誰も私にこれを作るためにいくつかのアイデアを与えることができますか?

enter image description here

答えて

1

モデルを作成:

class Role < ActiveRecord::Base 
    has_and_belongs_to_many :users, :join_table => :users_roles 
    belongs_to :resource, :polymorphic => true 

    validates :resource_type, 
      :inclusion => { :in => Rolify.resource_types }, 
      :allow_nil => true 
    scopify 
end 

は形で正規としてそのモデルを使用してください。この方法で、新しい役割を作成することができます。

ユーザーモデルを使用してロールを追加する場合は、ドロップダウンを選択し、Roles.allを取得して選択に渡します。

+0

なぜresource_typeにnilを許可しますか?あなたのロールがリソースにリンクされていない場合、それは有効ではありません。(?) – theDrifter

+0

そのモデルコードは実際にはrolify gemに含まれているものなので、おそらく 'allow_nil'がrolifyによって内部的に必要です。あなたは実際にこのモデルを定義することさえできません。しかし、あなたはそれをより良くコントロールするために、「そこにいる」ことを知るために、そして後でロジックのために、あなたが役割を実装する必要があるので、どこに追加するかを知っておく必要があります – ClassyPimp

関連する問題