添加后用户没有角色 - Cancancan& Rolify

时间:2017-06-05 17:03:39

标签: ruby-on-rails ruby admin cancancan rolify

我正在使用Cancancan和Rolify的Rails 5。当我向用户添加角色时,它将显示在他们的角色列表中,但在调用has_role时会返回false。

来自控制台的示例。

user = User.first 
user.roles # => []
user.add_role :admin 
user.has_role? :admin #=> false (what?!)
user.roles #=> [id: 1, name: "admin....

这里的任何帮助都会非常感激。不知道为什么这不起作用。谢谢!

1 个答案:

答案 0 :(得分:0)

没有这样的方法has_role?has_role?只是Rails应用程序中使用的一种辅助方法。 has_role?的定义如下:

def has_role?(role)
    current_user && current_user.has_role?(role)
end

可以添加到您的应用程序助手中。 您可以在.erb或.rb文件中调用此方法,如下所示:

<% if has_role?(:admin) %> 

或:

if user.has_role? :admin