我正在使用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....
这里的任何帮助都会非常感激。不知道为什么这不起作用。谢谢!
答案 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