1

작은 예약 사이트 구축. users (로그인하고 사이트에서 작업하는 사람)이 있으며 guests 사람이 rooms에 할당됩니다. users은 모두 guests 일 수 있지만 모두가 아님이 있습니다. guestsusers입니다.레일 사용자 모델을 사용한 단일 테이블 상속 (STI)

내 초기 기울기는 user & guest 사이 belongs_to/has_one 관계를 설정하는 것이 었하지만 어쩌면 STI 여기서 일 것이다? 사용자가 & 인 경우 first_name, last_name, email 등이 있습니다. 예를 들어 userguest이 모두 person에서 상속 받도록 모델을 설정하는 것이 맞습니까? user이 미칠 가능성이있는 유일한 추가 필드가 password_digest, roles_maskicon_color 그래서

난 내 자신의 단순한 인증을 출시합니다.

제안 사항? 나는 물건들이 인증, 승인 & 이것 저것 주위에 까다로워 질 수 있기 때문에 묻는다.

아이디어/팁을 알아보십시오!

+0

여기에 'has_one'이 있습니다. –

+0

사용자 및 손님에 대한 실제 모델이 다른 Devise와 함께 갈 것입니다. –

답변

0

가장 간단한 방법은 STI를 사용하는 것이 좋습니다. 예를 들어 단일 deviseUser 모델을 설정하고 CanCan과 함께 ACL을 적용하고 사용자에 대한 역할을 정의 할 수 있습니다.

CanCan의 능력 사양에 따라 액세스 할 수있는 리소스와 그렇지 않은 리소스가 결정됩니다. 이점은 사용자가 게스트가 될 수 있으며 ACL을 설정하는 방법에 따라 게스트에 admin처럼 액세스하지 못하도록 할 수 있다는 것입니다.

하지만 두 개의 별도 Devise 모델을 사용한다는 Jesse의 제안은 세션이 분리되어 있기 때문에 좋은 아이디어입니다. 이것은 사용자 고유의 ACL 및 게스트 고유의 ACL을 적절하게 설정할 수 있으므로 구현하기가 더 쉽습니다.

https://github.com/ryanb/cancan