2016-08-28 2 views
0

id 열과 다른 열에 참조를 추가 할 수 있습니까? 두 모델 (모델 1과 모델 2) 사이의 관계가 생성 통상선택한 열의 참조를 ID와 다른

는 관계 모델의 생성을위한 model1:referencesmodel2:references 사용 자동 (인덱스 및 외래 키 참조와 함께)를 model1_idmodel2_id 열을 추가 예를 Model1 = TeacherModel2 = Pupil에 대한

rails generate Relationship model1:references model2:references 

말 다음 모델 1/모델 2의 연결에 사용.
Model2의 레코드 (학생 기록)가 지금마다 그리고 rake 작업으로 업데이트된다고 가정하면 그 속성의 값은 (nameschool_credits) idranking (1 ~ 100)을 유지하면서 변경됩니다.

교사를 pupil_id과 연결하면별로 의미가 없습니다.
대신 각 교사는 대신 pupil.name 속성을 외래 키 참조로 사용하여 학생의 이름과 연결되어야합니다.

그럴 수 있습니까?
rails generate Relationship 명령에 어떤 옵션을 추가 할 수 있습니까? 아니면이 결과를 얻기 위해 추가 할 내용이 있습니까? reference?

+0

동공 이름과 학생을 연관 짓는 경우 학생의 이름이 변경되면 어떻게 연관을 결정합니까? –

+0

아이디 1 등급 1은 100 크레딧으로 폴, 1d 2 등급 2는 90 크레딧으로 케빈, 3 등급 3는 80 크레딧으로 레아입니다. Lea가 30 학점을 획득하면 ID 1 등급 1이 Lea 이름과 110 학점으로 업데이트됩니다. 폴과 케빈도 변화합니다. Lea가 teacher1의 학생 인 경우 teacher1은 ID 3이 아닌 Lea와 연결되어야합니다. – Asarluhi

답변

1

예, 가능합니다. foreign_key 및 primary_key 섹션을 다음에서 확인하십시오 : link. 생성기를 사용하지 않으므로 생성기로 전달할 옵션에 대해서는 언급 할 수 없지만 외래 키로 사용할 열이 테이블에 있고 모델 파일에 적절한 foreign_key를 할당해야합니다.

하지만 왜 필요합니까? ID와 순위를 동일하게 유지해야하는 유스 케이스의 종류를 이해하지 못합니다.

+0

예를 들어 Wta 순위 (여성 테니스)를 가져옵니다. 매주 업데이트됩니다. nokogiri를 사용하여 순위를 찾고있는 이름과 포인트를 업데이트 할 수 있습니다. 테니스 선수의 흔적을 100 점 만점에 두는 것은 어렵습니다 (즉, 처음 100 점을 나가는 선수). – Asarluhi

관련 문제