2009-07-24 7 views
0

나는 here 문서를 읽고 거기에서 발견 한 원칙을 사용하여 컨트롤러에 대한 관리 검사를 작성했습니다. 기본적으로 컨트롤러가있는 컨트롤러를 확인한 다음 해당 컨트롤러를 볼 수있는 권한으로이 사람이 찾으면 전달하는 배열을 만듭니다.Ruby on Rails - 클래스 캐싱?

기사 작성자는 독자가 예제 코드를 결함이있어 사용하지 말아야하며 (물론 지금은 구형 인) 플러그인을 사용해야한다고 말했습니다. 그리고 그는 말했다

"클래스 변수와 클래스 캐싱의 사용으로 인해 프로덕션 모드에서 실행 중일 때 위의 코드에 몇 가지 문제가 있습니다."

나는 테스트에 실패했기 때문에 이것으로 인한 것 같지만 사용하지 말아야 할 부분이 무엇인지 잘 모르겠습니다. 나는했다 (application.rb에서) 다음

controller = self.class.name 
action = params[:action] 

어떻게 올바르게 작업 이름을 액세스합니까 :

controller = params[:controller] 
action = params[:action] 

는하지만 해당 변경? 그리고 일반적으로 프로덕션 환경에서는 수행 할 수없는 개발 모드에서 어떤 종류의 작업을 수행 할 수 있습니까?

답변

0

대신 역할 기반 권한 플러그인을 사용해 보셨습니까? . 다음에 유래 질문을 참조하십시오 :

Which Rails plug in is best for role based permissions? (Please provide one nomination per answer)

난 당신이에 붙여 넣은 문제의 플러그인은 몇 가지 문제가있을 수 있습니다 코드의 생산 사용에 문제의 인식 해요 인해의 가능한 오용을 @@ 그러나, 나는 철저하게 그것을 검사하지 않았다.

+0

예, 방금 http://github.com/be9/acl9/tree/master에 대해 말했고 나중에 구현하려고 할 수 있습니다. 감사. – RyanJM