0

저는 아주 새로운 개발자입니다. 따라서 이것은 바보 같은 질문 일 수 있습니다.모델을 여러 모델과 연관시키는 방법은 무엇입니까?

지리 데이터에 통계를 저장할 webapp을 설정하려고합니다.

  • 는 I 기본적인 통계 정보 (중앙값, 분산, 평균, 등)에 대한 필드를 합계라는 모델을 갖는다.
  • 나는 도시, 우편 번호, 하위 우편 각 지역 단위 설정 모델을 가지고

내가 알고 싶은 것은 도시, 우편 번호 및 하위 지퍼로 잠근다와 통계 모델을 연관있다 ; 즉 모든 통계 모델은 도시, 우편 또는 하위 우편에 속하지만 지리적 단위 (시, 우편 번호, 하위 우편)는 여러 통계를 가질 수 있습니다.

연결 및 마이그레이션을 어떻게 설정합니까? 필자는 Rails 가이드를 살펴 봤지만 객체가 다른 모델에 속할 수있는 관계는 다루지 않는 것 같습니다 (단 하나만 포함). 또는 모델을 다르게 설정해야합니까?

답변

1

당신은 말했다 :

모든 스탯 모델이 속한 어느 도시, 우편 번호, 또는 하위 우편 지리적 단위 (도시 동안, zip, sub-zip)은 여러 개의 통계를 가질 수 있습니다.

그래서 나는 당신이 Polymorphic Associations를 설정하려는 생각 : 다형성 협회와

이 모델은 하나의 연결에, 하나 개 이상의 다른 모델에 속할 수 있습니다. 어쩌면이 같은

그래서 협회 :

class Stat 
    belongs_to :statsable, polymorphic: true 
end 

class City 
    has_many :stats, as: :statsable 
end 

class Zip 
    has_many :stats, as: :statsable 
end 

class Subzip 
    has_many :stats, as: :statsable 
end 
+0

고마워요. 제가 찾던 바로 그 거에요! – slykat

0

레일 연관을 사용하여 수행 할 수 있습니다. 링크를 이, 세부 사항에 당신이 설명

http://guides.rubyonrails.org/association_basics.html

+0

안녕, 나는 그 문서를 통해 살펴본 연결을 추가하는 방법을 모르겠어요. City, Zip 및 Sub-Zip 모델에서는 ** has_one **을 사용하지만 ** Stat ** 모델에서는 사용하지 않아도됩니다. 통계가 City에만 속하는 경우 ** belongs_to **를 사용하지만이 경우 많은 통계에 속할 수 있습니다. – slykat

+0

stat 및 city와 같은 다른 모델에 many-to-many 연관이있는 경우 has_and_belongs_to_many 연관을 사용해야합니다. 이 작업은 조인 테이블을 사용하여 수행 할 수 있습니다. 같은 링크에서 찾아보십시오. –

관련 문제