我正在尝试在我的Rails应用程序中使用Cancan进行身份验证,但我遇到了麻烦。我的用户表中有两列名为admin和owner,两列都是boolean。我的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 %>
答案 0 :(得分:0)
你应该写,
<% if can? :create, Place %>
<%= link_to 'New place', new_place_path %>
<% end %>
在类级而不是对象上创建工作。