Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用cancan和rolify进行角色管理_Ruby On Rails_Devise_Roles_Cancan - Fatal编程技术网

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

Ruby on rails 使用cancan和rolify进行角色管理,ruby-on-rails,devise,roles,cancan,Ruby On Rails,Devise,Roles,Cancan,我正在使用Desive cancan rolify设置来处理用户。注册后,他们将获得一个读者角色。我想能够,从一个管理界面,促进他们的作家角色。问题是,角色和用户角色表的设置方式使得这变得相当复杂,尤其是在没有用户角色模型的情况下,而且我相当业余。有熟悉这方面的人可以指导我正确的方法吗?我希望您确实了解Desive+cancan+rolify设置 如果您确实遵循了这些步骤,则应该有“用户”、“角色”和“用户\角色”表。你不需要用户的角色模型 您需要做的第一件事是确保您可以为用户分配和检查角色 在

我正在使用Desive cancan rolify设置来处理用户。注册后,他们将获得一个读者角色。我想能够,从一个管理界面,促进他们的作家角色。问题是,角色和用户角色表的设置方式使得这变得相当复杂,尤其是在没有用户角色模型的情况下,而且我相当业余。有熟悉这方面的人可以指导我正确的方法吗?

我希望您确实了解Desive+cancan+rolify设置

如果您确实遵循了这些步骤,则应该有“用户”、“角色”和“用户\角色”表。你不需要用户的角色模型

您需要做的第一件事是确保您可以为用户分配和检查角色

在继续之前,您应该能够运行这些代码(从文档的使用部分,在控制台中的任何用户上尝试这些代码)

如果这对您有效,现在您需要为新用户分配读卡器角色,最好在创建回调后执行此操作:

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
就这些


我希望这能有所帮助。

如果我理解用户以管理员身份登录时您想要的问题没有错,那么他/她应该具有管理员(编写器)功能,而您没有任何用户表?
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