나는 admin, employee, manufacturer, transporter의 네 가지 사용자 유형으로 인벤토리 관리 애플리케이션을 구축하고 있습니다. 아직 코딩을 시작하지 않은, 그러나 이것은 내가 생각하고 ... 제조 업체 및 운송이 has_many와 관련된 무엇인가를 대다 제품과 관련하여 다음과 같이Ruby on Rails의 다중 사용자 역할
class Manufacturer < ActiveRecord::Base
has_many :products
has_many :transporters, :through => :products
end
class Product < ActiveRecord::Base
belongs_to :manufacturer
belongs_to :transporter
end
class Transporter < ActiveRecord::Base
has_many :products
has_many :manufacturers, :through => :products
end
모든 4 개 개의 사용자 유형 것이다 로그인 할 수는 있지만 다른 사용 권한과보기 등이 있습니다. 다른 요구 사항을 갖기 때문에 같은 테이블 (사용자)에 넣을 수는 없습니다. 공급 업체 및 제조업체는 청구서 수신 주소 및 연락처 정보 (유효성 검사를 통해)는 있지만 관리자와 직원은이 필드가 없어야합니다.
가능하다면 4 개의 다른 화면과 달리 하나의 로그인 화면을 만들고 싶습니다.
이 코드를 작성하는 정확한 코드는 요구하지 않지만 문제가 발생하지 않도록 최선의 방법을 결정하는 데 문제가 있습니다. 어떤 아이디어라도 크게 감사 할 것입니다 - 감사합니다!
도움을 주셔서 감사합니다! 데이터베이스 테이블은 기본 사용자 클래스와 특정 사용자 유형에 대한 STI를 사용하여 어떻게 설정합니까? 난 정말 레일에 처음이에요 :) – aguynamedloren
당신은 오직 '사용자'테이블을 데이터베이스에 가지고있을 것입니다. STI/단일 테이블 상속에서는 기본 테이블 (이 경우 '사용자')의 '유형'필드를 사용하여 기본 클래스의 하위 유형을 구별합니다. 마이그레이션에서이 필드를 추가해야합니다. 그런 다음 기본 클래스의 모든 부속 유형에 대한 모든 속성은 많은 특정 인스턴스/행에 의해 사용되지 않더라도 users 테이블에 보관됩니다. 이것은 STI 패턴을 사용하는 절충안입니다. 사용되지 않은 속성에 대한 Null 필드의 수는 하위 유형별 속성의 수에 따라 달라질 수 있습니다. –