상속 된 리소스와 결합 된 CanCan의 모델 중첩 된 3 단계의 문제가 있습니다. 나는 우리가 둥지 모두 최대 2 개 수준으로해야 읽었습니다,하지만 난 account
모델에서 모든 것을 넣어했고 지금은 캉캉에서이 일을 시도했습니다 나에게있다 @account 변수를 제공상속 된 리소스 및 CanCan 3 단계 중첩
load_and_authorize_resource :account
load_and_authorize_resource :project, :through => :account
load_and_authorize_resource :model, :through => :project
을 값을 덮어 쓰는 것처럼 @project의 값. @project는 있어야하고 @model입니다. CanCan, Inherited Resources 또는 CanCan이 3 단계 중첩을 지원하지 않습니다. 또한, 나는 ModelsController를 위해 IR에서 이것을한다. 내가 캉캉의 정의에서 부분 load_and_
를 제거 할 때
belongs_to :account, :finder => :find_by_name! do
belongs_to :project, :finder => :find_by_name!
end
또 다른 이상한 것은
이다. 그것은 그 때 작동합니다, 그러나 나는load
부분을 사용하지 않는 것이 위험 할 수 있다는 것을 읽었습니다.
authorize_resource
만 사용할 수 있습니까? 아니면 CanCan을 사용해야합니까?
CanCan을 통해 얼마나 많은 레벨이 지원되는지 알 수는 없지만, 자신 만의 로딩을 한 후 대신'authorize_resource' 메소드 만 호출 할 수 있습니다. https://github.com/ryanb/cancan/wiki/Authorizing-Controller-Actions – jdl
authorize_resource를 사용하려면 authorize_resource 전에로드하기 전에 before_filter를 사용해야합니다. – dombesz