난 레일 응용 프로그램에서 일하고 있고 나는 3 가지 사용자 유형이 있습니다. 이러한 사용자는 잠재적으로 매우 다를 수 있으므로 각 사용자에 대한 모델을 만들었습니다. 이제 그들은 단일 양식을 통해 로그인 할 수 있어야합니다. 그래서 기본적으로 'find_by_email ("some_email")'과 같은 것을 말하고 싶지만 세 테이블 모두를 검색하십시오. 레일스는 Admin.find_by()와 같은 특정 모델로 'find_by'를 호출 할 것으로 기대합니다. 어떤 제안?레일 find_by_email 여러 테이블
0
A
답변
1
시도의이 같은 및 이메일이 모든 테이블
[Model1, Model2, Model3].each do |model|
break if model.find_by_email("[email protected]").present?
end
0
에서 고유 있다는 희망이 조기에 개발이라고 가정하지만, 현재의 구조는 최적의 경로를하지 않을 수 있습니다. 얼마나 많은 다른 열이 각 사용자 유형에서 공유되지 않습니까? "사용자 역할"시스템을 사용하여 단순히 사용자 테이블에 추가 열이되도록 할 수 있습니다.
이상으로 CanCan과 같은 것을 사용하여 역할 및 액세스 할 수있는 대상/위치를 관리 할 수 있습니다.
관련 문제
- 1. 레일 - 여러 테이블 간의 상속
- 2. 레일 : 하나의 쿼리에서 여러 테이블 검색
- 3. 레일 및 html 테이블
- 4. 여러 레일 ORM
- 5. 레일 맞춤 데이터베이스 테이블
- 6. 레일 컴플렉스 테이블
- 7. 기본 키가없는 레일 테이블
- 8. 레일 조인 테이블 문제
- 9. 레일 매우 큰 테이블
- 10. 레일 : 컬렉션에서 테이블 만들기
- 11. 3 테이블 조인 레일
- 12. 레일 - 도시 테이블
- 13. 레일 3 테이블 잠금
- 14. 테이블 및 레일 조인
- 15. 레일 테이블 상속 문제
- 16. 레일 병합 테이블
- 17. 여러 테이블
- 18. 레일 액티브 레코드 테이블 협회
- 19. 여러 테이블 또는 여러 필드
- 20. 레일 3 - 여러 통화
- 21. 레일 여기에 여러 모델
- 22. 레일 여러 취급
- 23. 레일 3.1 여러 컨트롤러
- 24. 여러 레일 어플리케이션 모니터링
- 25. 여러 도메인을위한 레일 앱
- 26. 여러 환경에서 레일 테스트
- 27. 레일 - 여러 부모의 자식
- 28. 여러 역할의 레일
- 29. 레일 3 - 여러 클래스
- 30. 레일 : 여러 방법
저는 처음부터 실제로 그렇게했습니다. 그리고 정상적으로 작동했습니다. 그러나 나는 이것이 미래에 문제가 될 것이라고 약간 걱정하고있다. 나는 다양한 사용자가 꽤 다른 것으로 끝날지 모른다는 생각을 가지고있다. 보다 간단한 접근 방식을 유지하면 어떤 이점이 있습니까? – Kasper
데이터 구조가 더 정확하다고 나는 말할 것입니다. 실제로 사용자 목록이 하나 있고 사이트/앱마다 다른 역할을합니다. 또한 CanCan과 같은 기능을 사용하면 프로그래밍 방식으로 역할을 아래쪽으로 할당하는 것이 쉬워집니다. 나는 그것을 선호 할 수는 있지만 장기적으로 관리하는 것이 더 쉬울 것이라고 생각한다. 'User.where (전자 메일 : "전자 메일 주소", 역할 : "admin")' –
그래, 실제로이 기술을 계속 사용한다고 생각해. 나는 정말로 "가장 좋은"방법이 무엇인지 알 수 없다. STI가 처음부터 충분히 잘 작동 한 이후로 나는 그것에 충실 할 것입니다. 어쨌든 두 기법을 모두 후회할 것입니다 :) – Kasper