我有一个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权限的用户创建和删除(管理)notes。
我已经尝试使用如下代码块来定义权限:
can :manage, TakeActionNote do |action, note|
note.take_action.user.id == user.id
end
我可以在take_action中添加注释,但是当我尝试销毁它时,我会得到以下错误:
Take action notesController#33中的NoMethodError 未定义方法`take_action' for nil:NilClass
我是否遗漏了什么或者做错了什么?任何帮助都将不胜感激。谢谢!