2012-06-29 2 views
12

CanCan을 인증 용으로 사용하고 있습니다. 나는 model-action-user 규칙을 /app/config/ability.rb에 정의하고있다. 내 application_controller 줄을 load_and_authorize_resource 추가했습니다 및 모든 일을했습니다.CanCan 및 모델이없는 컨트롤러

그러나 모델이없는 수많은보기와 컨트롤러도 있습니다. 예를 들어, 통계 페이지를로드하려고하는 것은

NameError (uninitialized constant Statistic): 
    activesupport (3.2.3) lib/active_support/inflector/methods.rb:229:in `block in constantize' 
    activesupport (3.2.3) lib/active_support/inflector/methods.rb:228:in `each' 
    activesupport (3.2.3) lib/active_support/inflector/methods.rb:228:in `constantize' 
    ... 

는 캉캉 컨트롤러 + 액션 대신 모델 + 조치를 작동하려면 어떤 방법이 있나요 준다?

답변

22

컨트롤러에 authorize_resource :class => false을 사용하십시오. 캉캉 자동 https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers

+0

load_and_authorize_resource 메소드를 사용하는 경우 class => false.cancan을 언급 할 필요없이 기본으로 확인하고 찾아 낼 수 있습니다. –

+2

@MadhanAyyasamy 나는 그렇게 생각하지 않는다. – Nithin

+0

@MadhanAyyasamy load_and_authorize_resource는 컨트롤러에 대한 모델이 없다는 것을 말하지 않으면 깨진다. –

0

는 "https://github.com/piedoom/cancancan"어디 사람이 업데이 트를 찾는 cancacan이 보석을 사용할 수 있습니다 참조

합니다 (StatisticsController 예 : 단일 상징, :statistic로) 컨트롤러의 이름에 능력을 확인합니다 보석의 cancan을 새로운 버전으로 바꾸십시오