我正在尝试在我的 Rails 应用程序中使用 Cancan 进行身份验证,但在这样做时遇到了麻烦。我的用户表中有 2 列名为 admin 和 owner,它们都是布尔值。我的ability.rb 文件检查这是否属实,然后提供适当的权限。似乎未登录的用户的权限 + 管理员工作的用户。但是,所有者的许可似乎不起作用。我无法在我的视图中查看使用此权限的链接。
我已将 load_authorize_resource 放在 PlacesController 的顶部。
def initialize(user)
user ||= User.new # Guest user
if user.admin?
can :manage, :all
else
can :read, :all
if user.owner?
can :create, Place
end
end
# can :read, :all
end
我可以以管理员的身份查看此内容,但不能以所有者的身份查看...但我应该能够以所有者的身份查看。
<% if can? :create, @place %>
<%= link_to 'New place', new_place_path %>
<% end %>