7

我正在将 Ability 类中的一些自定义 CanCan 操作更改为使用块而不是仅使用哈希,但现在它们实际上已停止限制访问。奇怪的是,像 :manage 和 :create 等内置操作似乎仍然可以很好地处理这些块。

这是一个例子:

老的

# this one works
can :share, Project, :user_id => user.id

新的

# this one doesn't work
can :share, Project do |project|
  project.users.exists?(user)
end

以前有人遇到过这个问题吗?

4

1 回答 1

1

关于您的不良行为,我不能说太多,但您可能不应该将散列更改为阻塞,因为这些散列使您能够获取记录。在 CanCan wiki 中仔细阅读这篇文章。

于 2011-01-20T02:42:50.543 回答