2011-02-28 4 views
1

환자 모델과 클라이언트 모델이 있습니다. 환자는 많은 고객을 가질 수 있고 고객은 많은 환자를 가질 수 있습니다. 나는 협회를위한 모델을 만들고 싶다. 나는 그것을 무엇이라고 부릅니까?도움말 레일에서 모델 이름 지정

고객이 병원 또는 의사의 진료실입니다. 환자는 병원이나 의사 사무실에서 교육을 받아야하는 사람입니다.

답변

2

클라이언트 란 무엇입니까? 어떤 종류의 의사입니까?

어때 대략 registrations 또는 enrollments?

그런 다음 거라고 :

# client 
has_many :enrollments 
has_many :patients, :through => :enrollments 

# patient 
has_many :enrollments 
has_many :clients, :through => :enrollments 
+0

좋은 소리. 어떻게해야합니까? rails generate model 등록 client_id : 정수 patient_id : 정수 활성 : 부울 –

+0

그래, 그래. 저는 실제로 생성기를 많이 사용하지 않으므로 올바른 모델을 생성 할 수 있는지 확실하지 않지만 등록 모델을 'belongs_to client'및 'belongs_to patient'로 지정해야합니다. – jonnii

+0

감사합니다. –

0

그런 다음 규칙을, 조인 테이블의 이름은 단지 알파벳 순으로 정렬 할 필요가 따르십시오 : 당신이 모델 클래스에 액세스해야하는 경우

# create_clients_patients.rb 
create_table "clients_patients", :id => false do |t| 
    t.column "client_id", :integer, :null => false 
    t.column "patient_id", :integer, :null => false 
end 
+0

이것은 당신이 레일 3.1에서 더 이상 사용되지되는 HMABTM 관계를 사용하는 가정입니다. 당신은 has_many : through를 사용하는 것이 더 낫습니다. 또는 모델 ClientsPatients를 호출하면 이상한 이름이됩니다. – jonnii

0

당신은 아마를 사용할 필요가 없습니다 다 대다 협회 있지만 : 원하는대로 이름을 지정할 수 있습니다

has_many :through 

협회.

다 대다 연관에는 크로스 테이블 모델에 직접 액세스 할 필요가 없으므로 (예 : clients_patients) 테이블 명명 규칙 만 있습니다.

+0

연관 상에 활성 부울 필드가있는 clients_patients 모델을 상상해보십시오. 이 경우 모델이 필요하거나 테이블 만 필요합니까? –