2013-09-07 3 views
0

cancan을 사용하여 Rails에서 권한을 지원하는 응용 프로그램을 만들려면 개발자가 역할 방법이 무엇인지 결정해야합니다. 이제는 내 경우에 가장 적합한 방법을 찾아야합니다. 이는 기존의 사용자 별 역할 모델입니다.cancan 역할 전략 전략 비교/상쇄

내가 찾은 방법은 저와 아주 비슷하게 보입니다. 역할 모델을 선택하는 과정에서 실제로 기술적 인 차이가 있는지 궁금한 점입니까? techincal 차이점이 있다면, 하나의 모델 또는 다른 모델을 선택하는데있어 절충점은 무엇입니까?

을 유발할 수있는 모델

내가 볼 수 있습니다 :

의견을 통해 이러한 접근법을 비교하는 기사에 대한 요점은 그 내용을 비교할만한 자료가 많지 않기 때문에 감사하겠습니다.

답변

1

사용 당 하나의 역할 만 필요한 경우 가장 간단한 방법을 사용하십시오.

  1. 사용자에게 하나의 문자열 필드를 추가; 역할이라고 부른다.
  2. 값을 포함하는 사용자에 배열을 추가 : 쉽게 역할을 확인할 수 있도록 ROLES = %w{System\ Admin Admin Customer Etc}
  3. 가 사용자에게 몇 가지 헬퍼 메소드를 추가

역할 도우미 (즉 user.admin?) :

ROLES.each do |role_name| 
    define_method "#{role_name.downcase.tr(" ", "_")}?" do 
    role == role_name 
    end 
end 

향후 필요할 때보다 복잡한 옵션을 쉽게 활용할 수 있습니다.