2014-01-05 25 views
5

私はこの件に関してたくさんの質問がありますが、私が探しているものに本当に答えている人はいません。cancanを使用してrolifyを追加して作成する方法を教えてください。

私はcancanで自分の役割を定義するためにrolifyを使用しようとしていますが、私はrails consoleを使ってadminロールを作って、新しいユーザーのデフォルトロールを設定することができました。

私の質問は、異なるバリューのバッチを設定し、それらのロールを特定のユーザーに割り当てる方法です。

このプロセスを説明する良いチュートリアルをお持ちの場合は、スクリーンキャストが優先されます。

ありがとうございました!

答えて

10

ロールのバッチはどのように作成しますか?誰かへの役割が

@user.add_role :admin 

のように行われている追加のシード

[:admin, :author, :contact, :user].each do |role| 
    Role.find_or_create_by_name({ name: role }, without_protection: true) 
end 

あなたはすくいデシベルを実行するたびに実行され、あなたのdb/seeds.rbファイル、でこれを行うことができますあなたスティーブはすでに言ったように、ユーザーが

@user.has_role? :admin 

を使用して一定の役割を持っているかどうかを確認し、https://github.com/EppO/rolify documenあなたは動かすべきです!

+0

これは私が欲しかったものです、ありがとう! –

1

あなたの質問はこれより複雑だと思いますが、簡単な答えはadd_roleです。役割を何かに割り当てる以外に何かを行う必要はありません。ジェーンがグローバルadminで、ジョーはペオンであれば、あなただけ使用できます。

User.where(name: 'Joe').add_role :peon 
User.where(name: 'Jane').add_role :admin 

ます。また、クラスの特定のクラスまたはインスタンスに対する役割を追加することができますが、上記はあなたに最も直接的な答えでした質問。 githubのREADMEは、チュートリアルのようにかなりまともです。

1

私はあなたのseeds.rbファイルにこれを入れているダニーの答えに使用される方法は、私が仕事に見つけたものRailsの4

で私のために動作していないことを指摘したいと思い

[:admin, :author, :contact, :user].each do |role| 
    Role.where({ name: role }, without_protection: true).first_or_create 
end 

これは、あなたが私にRails 4を使って尋ねたことをするようです!これは、この回答に基づいていたabove

関連する問題