0
나는 내가하고있는 앱이 내가 만들고있는 앱 (주니어 dev 레벨)에 적합한 지 물어보고 싶다.Polymorphic Association을 사용하여 다른 유형의 사용자를 표시해도 괜찮습니까?
기본적으로 앱에는 의사, 고객 및 관리자가 필요합니다 (현재). 각각은 자신의 프로필 페이지를 가지고 있으며 다른 일을 할 수 있습니다. 또한 가입 절차를위한 User 클래스가 있습니다.
PA 선택에 대한 나의 근거는 모든 사용자가 사용자로 로그인한다는 것이며, "의사가되는 것"과 "사용자가되는 것"을 분리하고 싶습니다. 이것은 좋은 생각입니까?
class User < ActiveRecord::Base
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :profile, polymorphic: true
end
class Doctor < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
accepts_nested_attributes_for :user
## doctor stuff
delegate :email, :password, to: :user
end
class Client < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
accepts_nested_attributes_for :user
## client stuff
delegate :email, :password, to: :user
end
감사합니다. @Coenwulf. 저는 이것이 약 80 %가이 길을가는 것이라고 확신하지만, [Enterprise Rails] (http://enterpriserails.chak.org/full-text/chapter-10-multiple-table-inheritance)를 읽을 때 걱정됩니다 데이터베이스 무결성에 대해. 예를 들어 이메일 주소가없는 의사를 만들 수 있습니다. 이는 끔찍한 일입니다. 이게 풀릴 수 있습니까? –
사용자에게 이메일을 저장하는 것으로 보입니다. 사용자 _must_에 전자 메일 주소가 있지만 의사에게 필요하지 않기 때문에 문제가됩니까? 의사가 반드시 사용자가 아니기 때문에 그렇게한다면? 상황에 대한 자세한 내용이나 어떤 유효성 확인을 할 수 있습니까? – Coenwulf
오, 나는 아직 검증을받지 못했다. 내가 검증을 한 다음 문제를 다시 확인해야한다고 생각해. 그래, 모든 의사는 사용자이고 이메일 주소가 필요합니다. –