2009-09-13 3 views
0

저는 새로운 프로젝트를 진행하고 있습니다. 그리고 어떤 이유로 authologic을 사용하여 두 개의 개별 사용자 모델/컨트롤러/세션을 만들기로했습니다.2 개의 사용자 모델 또는 하나만 있습니까?

사용자는 사이트에서 완전히 다른 역할을 수행하지만 모델은 기본적으로 동일합니다. 유일한 차이점은보기입니다.

이제 한 모델을 만들고 "역할"필드를 추가해야하는지 궁금합니다. 그런 다음 로그인 한 후 보유한 역할을 파악한 다음 역할에 따라 새 컨트롤러에 덤프하십시오.

제 질문은 두 개의 사용자 모델이있는 이유가 있습니까? authlogic을 사용하는 사용자 역할에 대한 가이드가 있습니까?

감사합니다.

답변

3

Authlogic은 인증에 초점을 맞추기 때문에 역할 기반 권한을 추가하는 것은 매우 쉽습니다. 우리는 하나의 User 모델을 가지고 Role 모델을 추가 한 다음 동일한 사용자가 여러 역할을 가질 수 있도록 UserRole 모델을 연결하고 여러 사용자가 동일한 역할을 수행하도록함으로써 매우 간단하게 수행했습니다.

Authlogic의 관점에서 보면 상관이 없습니다. 사용자가 인증되었음을 사용자에게 알리기 때문에 사용자가 추가 한 권한은 자신 만의 권한입니다.

RoR의 역할 기반 권한에 사용할 수있는 기사가 많으므로 Google 만 있으면 필요한 스위트를 찾을 수있을 것입니다. 나는 간단 크게

+0

:-) 당신의 인생을 도움이 될 것입니다 유지하지만 발견 한 것과

그 하나 개의 모델을 유지하기 위해 나를 설득하기에 충분, 당신을 감사드립니다. 그러나 에는 두 개의 계층 구조가 있으며 두 모델로는 훨씬 간단합니다. 한 모델 has_many 다른, 한 belongs_to 첫 번째. 하나의 모델을 가지고 있는데 나는 펑키 한 일을해야한다는 것을 알았습니다. 물건을 통해,하지만 한 달 안에 두 모델로 나 자신을 차고있을 것이라고 확신합니다. –

+0

일부 비즈니스 로직을 분리하는 것이 합리적이라면 단일 테이블 상속을 사용하는 방법을 살펴볼 수 있습니다. 예를 들어 사용자 모델과 User에서 상속 한 SpecialUser 모델이있을 수 있습니다. 둘 다 데이터에 대해 동일한 테이블을 사용하지만 일부 논리를 분리 할 수 ​​있습니다. 원하는 어느 곳에서나 SpecialUser를 사용자로 취급하여 코드를 단순화 할 수 있습니다 .-) –

관련 문제