我有一個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