CanCan自定义操作无法使用块

Mat*_*att 6 ruby-on-rails cancan

我正在改变Ability类中的一些自定义CanCan操作来使用块而不仅仅是哈希,但现在他们已经停止实际限制访问.奇怪的是,内置的操作如:manage和:create等似乎仍然可以正常运行.

这是一个例子:

# this one works
can :share, Project, :user_id => user.id
Run Code Online (Sandbox Code Playgroud)

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

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

Mir*_*rko 1

我不能说太多关于你不想要的行为,但你可能不应该改变哈希来阻止,因为这些哈希使你能够获取记录。在 CanCan wiki 中仔细阅读这篇文章。