지난 2 시간 동안이 문제에 대한 내 머리를 터트렸다. 나는 polymorphically 링크 된이 두 클래스가 있습니다. 의사는 의사에게 물건이 있고 사용자는 웹 구성 요소 (전자 메일 주소, 작성자 등)를 처리합니다. 의사는 사용자입니다.양쪽에 다형 연관/유효성 검사를 사용하여 Rails 모델을 인스턴스화하는 방법은 무엇입니까?
다른 사용자 클래스 (간호사, MedicalInstitutions)가 있기 때문에 모두 자신의 필드가 필요하지만 사용자라는 사실에 의해 함께 연결됩니다. 그래서 저는이 경우 다형성 연관성을 선택했습니다.
문제는 둘 다 저장되지 않기 때문에 두 인스턴스를 인스턴스화 할 수 없다는 것입니다. 빈 데이터베이스를 가정하면 서로를 필요로하기 때문에 두 데이터베이스를 정확히 어떻게 만듭니 까? 동시에 "둘 다를 저장하는"방법이 있습니까?
class User < ActiveRecord::Base
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates_presence_of :profile
belongs_to :profile, polymorphic: true
end
class Doctor < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
accepts_nested_attributes_for :user
validates_presence_of :user
# doctor-specific code here
delegate :email, :password, to: :user
end
class Nurse < ActiveRecord::Base
# has_one, accepts... same as doctor. nurse-specific code here
end
다른 사람이 FactoryGirl에서이 문제를 어떻게 해결할 수 있는지 알려 주시면 감사하겠습니다.
옆 : 나는 this을 본 적이 있지만 양측에 유효성이 없습니다.
여기에 설정을 명확히하지 않고 일부 q를 명확히 해보려고합니다. 그래서 의사는 사용자입니다. 그래서 간호사 나 MedicalInstitution은 의사와 비슷한 코드를 사용합니다. 그것이 다른 사용자 클래스의 의미입니까? –
@RichardJordan이 답변 해 주셔서 감사합니다. 예, 그들은 같은 종류입니다. 그들 자신의 클래스 - 특정 필드가 있습니다. –
@DaryllSantos 그래서 기본적으로 모두가 사용자입니다. 단, 다른 프로필 (의사/간호사/기타)을 가지고 있다는 점이 다릅니다. –