gpt4 book ai didi

ruby-on-rails - 使用 cancan 和 rolify 进行角色管理

转载 作者:行者123 更新时间:2023-12-03 16:21:08 31 4
gpt4 key购买 nike

我正在使用 devise-cancan-rolify 设置来处理用户。在注册时,他们会获得读者角色。我希望能够从管理界面将他们提升为作家角色。问题是,roles 和 users_roles 表的设置方式使这变得相当复杂,特别是因为没有 users_roles 模型而且我相当业余。有没有熟悉这方面的人可以在这里指导我正确的方法?

最佳答案

我希望你确实看到了 this tutorial关于设计 + cancan + rolify 设置。

如果您按照这些步骤操作,您应该拥有用户、角色和 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

就是这样。

我希望这对您有所帮助。

关于ruby-on-rails - 使用 cancan 和 rolify 进行角色管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927570/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com