康康授权儿童国家

时间:2011-10-17 23:03:41

标签: ruby-on-rails ruby-on-rails-3 cancan

我的设置:Rails 3.0.9,Ruby 1.9.2,Cancan 1.6.5

我的模特:

class User
 has_many :projects

class Project
 has_many :tasks
 belongs_to :user

class Task
 belongs_to :project

ability.rb

can :manage, Task, :project => { :user_id => user.id } 

我需要的是,只有在taskuser获得授权且project具有由project确定的特定状态时才允许访问project实例方法,如active?(我有理由不将它作为一个属性)。指定能力的语法是什么?

1 个答案:

答案 0 :(得分:0)

由于通过调用方法(在运行时)进行访问,因此必须define the ability via blocks。这适用于实例,对于类似索引的操作,您必须自己设计查询。