ユーザーを処理するためにdevise-cancan-rolifyセットアップを使用しています。サインアップすると、読者の役割を受け取ります。管理インターフェイスから、ライターの役割に昇格できるようにしたいと考えています。問題は、特に users_roles モデルがなく、私がかなりアマチュアであるため、ロールと users_roles テーブルのセットアップ方法がこれをかなり複雑にすることです。ここで私を正しい道に導くことができる、これに精通している人はいますか?
質問する
8585 次
1 に答える
18
devise + cancan + rolify のセットアップに関するこのチュートリアルをご覧になったことを願っています。
これらの手順に従った場合、users、roles、および users_roles テーブルが必要です。users_roles モデルは必要ありません。
最初に行う必要があるのは、ユーザーの役割を割り当てて確認できることを確認することです。
続行する前にこれらのコードを実行できるはずです (ドキュメントの使用部分から、任意のユーザーでコンソールでこれらを試してください)。
user.add_role "admin"
user.has_role? :admin
これが機能している場合は、新しいユーザーにリーダーの役割を割り当てる必要があります。これを行うのに最適な場所は、after_create コールバックです。
class User
after_create :assign_reader_role
private
def assign_reader_role
self.add_role "reader"
end
end
次のステップは、アドミン インターフェースからライター ロールの追加/削除を作成することです。
UsersController に 2 つのアクションを追加するだけです。
def assign_writer_role
@user = User.find(params[:id])
@user.add_role "writer"
redirect_to @user
end
def remove_writer_role
@user = User.find(params[:id])
@user.remove_role "writer"
redirect_to @user
end
それで全部です。
これが役立つことを願っています。
于 2012-08-13T18:00:32.537 に答える