can :update, Topic do |topic| (topic.user_id == user.id) end
cancan 这里可以接受一个 block 来处理特殊的情景,block 里面的 topic 应该是一个实例变量,我的困惑是它是从哪里传进来的呢?我看了一下https://github.com/ryanb/cancan/wiki/Defining-Abilities-with-Blocks。但是没找到答案,谁来解惑一下?
https://github.com/ryanb/cancan/wiki/authorizing-controller-actions
这个时候传进去的
authorize! :show, @project
奥 刚看了下源码,这样定义 确实不行
这个 Blog 解释的很清楚:http://blog.xdite.net/posts/2012/07/30/cancan-rule-engine-authorization-based-library-2/