我有一个CanCan模型的3级嵌套与继承的资源相结合的问题。我读过,我们应该巢一切长达2级水平,但我不得不把一切都在account
模型,现在我已经在康康舞试着这样做:继承的资源和CanCan 3级嵌套
load_and_authorize_resource :account
load_and_authorize_resource :project, :through => :account
load_and_authorize_resource :model, :through => :project
这给了我,有一个@account变量@project的值,就像它覆盖那个一样。 @project也是应该和@model。我的这个错误,CanCan的,继承的资源还是CanCan不支持3层嵌套?另外,我在ModelsController的IR中执行此操作。
belongs_to :account, :finder => :find_by_name! do
belongs_to :project, :finder => :find_by_name!
end
另一个奇怪的事情是,当我从康康舞的定义中删除了部分load_and_
。它的工作原理是这样的,但我读过,不使用load
部件可能会很危险。
我可以只使用authorize_resource
还是应该使用CanCan做些什么?
我不知道CanCan支持多少级别,但是你可以自己加载,然后调用'authorize_resource'方法。 https://github.com/ryanb/cancan/wiki/Authorizing-Controller-Actions – jdl 2011-03-22 18:02:54
您可以使用authorize_resource,只需确保在authorize_resource之前使用before_filter进行加载。 – dombesz 2011-03-23 11:39:49