[英]Role management with cancan and rolify
我正在使用devise-cancan-rolify設置來處理用戶。 在注冊時,他們會收到讀者角色。 我希望能夠從管理界面將它們提升為Writer角色。 問題是,role和users_roles表的設置方式使得這一點變得相當復雜,特別是因為沒有users_roles模型而且我非常業余。 有沒有人熟悉這個可以在這里指導我的正確方法?
我希望你確實看到了關於設計+ 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中添加兩個操作即可
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
就這樣。
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.