使用CanCan验证用户使用CanCan的能力

时间:2010-07-22 21:23:06

标签: ruby-on-rails cancan

我有一个看起来像这样的TakeAction模型:

class TakeAction < ActiveRecord::Base
  belongs_to :user
  has_many :take_action_notes
  attr_protected :user_id  
end

和看起来像这样的TakeActionNote模型:

class TakeActionNote < ActiveRecord::Base
  belongs_to :take_action
  validates_presence_of :note
end

使用CanCan,我试图允许拥有take_action的用户创建和销毁(管理)笔记。

我尝试用这样的块来定义异能。

 can :manage, TakeActionNote do |action, note|
    note.take_action.user.id == user.id
 end

我可以在没有任何问题的情况下为take_action添加注释,但是当我尝试销毁它时,我得到:

采取行动notesController#33中的NoMethodError 未定义的方法`take_action'代表nil:NilClass

我有什么遗漏或做错了吗?任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:4)