我在设置一个功能时遇到了一个问题,看起来像这样:
can :read, Project, :allocate_to => user.id
问题是
ability.can?(:read, my_project)
即使返回false
Project.accessible_by(ability)
按预期只返回该用户的项目。
我在轨道3.2.19上用ruby 1.9.3-p547 尝试了cancan 1.6.10和cancan 1.9.2
这是cancancan的错误还是我的代码?我如何找出为什么ability.can?(:read,my_project)失败了吗?
也作为问题发布
我在cancan中使用散列表示法时遇到了类似这样的问题。你试过吗:
can :read, Project do |project|
project.allocate_to == user.id
end
我不知道为什么会这样,但这有时对我有用。