나는 내 인증을 돕기 위해 devise를 사용하고 있는데, 여러 가지 이유 때문에 등록 및 다른 비즈니스 로직에 대한 우려를 분리하는 데 도움이되는 User 모델의 몇 가지 하위 클래스가 있습니다. 사용자 테이블 (안 별도의 테이블)에 모든 데이터를 저장, 모두 User
의Devute User Inheritance 및 user_signed_in? and current_user
서브 클래스는 Affiliate
및 Admin
이다 (그리고 나는 미래에 더있을 수 있습니다).
모든 사용자는 기본 users
자원 (/users/sign_in
)을 통해 로그인 할 수 있습니다. 그러나 이것이 내가 문제가되는 곳입니다.
사용자가 /users/sign_in
리소스를 통해 로그인하면 user_signed_in?
및 current_user
헬퍼에 액세스 한 다음 다른 활성 레코드 연결에 액세스 할 수 있습니다. 이것이 내가 원하는거야! 우 후! 이것은 잘 작동합니다.
그러나 Affiliate
으로 가입하는 사용자는 마찬가지입니다. 수배자가 사용자를 자동으로 기록하기 때문에 (내가 원하는) user_signed_in?
은 true
과 current_user
이 방금 로그인 한 사용자가 될 것으로 예상합니다. 사용자가 /affiliate/sign_up
리소스를 통해 가입하는 경우에는 해당되지 않습니다.
Affiliate
모델에서
sign_up 프로세스 비트이기 때문에 I는 (고안을 통해) 생성 한 제어기의 개별 세트/sign_up위한 도면 이렇게 I는 (비트 이러한 프로세스를 사용자 정의 가능 (기억, 이러한 class Affiliate < User
같은 사용자가 서브 클래스) 이 특정 유형의 사용자에 맞게 더 맞춤화되었습니다.) 사용자가이 리소스 /affiliate/sign_up
을 통해 가입하면 제휴사가 등록되지만 current_user
은 nil
이고 user_signed_in?
은 false
입니다. 그러나 도우미 current_affiliate
은 수화 개체이며 affiliate_signed_in?
이 true입니다. user_signed_in?
도우미와 current_user
도우미없는 아이 affiliate_signed_in?
및 current_affiliate
- 내가 원하는 무엇
는 도우미의 한 종류에 액세스 할 수 있습니다. 액세스하려는 : current_user
및 user_signed_in
전용. Affiliate
하위 클래스가 User
인 것을보고, user_signed_in?
과 current_user
이 현재 사용자 (별칭 : Affiliate
)를 반환하지 않는 이유는 무엇입니까? current_affiliate
및 affiliate_signed_in?
도우미가 작동하는 이유는 무엇입니까? user
은 좋지 않습니다.
모든 것이 User
모델을 서브 클래 싱하기 때문에 프레임 워크에 항상 current_user
및 user_signed_in?
도우미를 사용하는 방법이 있습니까?