연관: Rails 다대다 관계
3989 단어 programmingrubywebdevrails
has_many :through
매크로를 활용하는 것으로 구성됩니다. 이것이 올바르게 작동하려면 두 개의 모델과 조인 모델이 필요합니다. 예제 모델에서는 Student
, House
및 Sorting_hat
를 조인으로 사용합니다.네, 오늘은 해리 포터의 세계를 예로 들어 보겠습니다!
#For less confusion involving our model classes
#The Syntax for inheriting Application Record is:
class Class_name_here < ApplicationRecord
end
다대다 관계는 다음과 같습니다.
class Student < ApplicationRecord
has_many :sorting_hats
has_many :houses, through: :sorting_hats
end
class Sorting_hat < ApplicationRecord #JOIN MODEL
belongs_to :house
belongs_to :student
end
class House < ApplicationRecord
has_many :sorting_hats
has_many :students, through: :sorting_hats
end
Harry Potter의 세계에는 단 하나의 분류 모자가 있지만. 오늘 우리의 예에는 각 개별 학생을 위한 분류 모자가 있습니다. 조인 테이블은 항상
belong_to
다른 모델을 개별적으로(단일) 합니다.조인 테이블을 다른 두 모델 사이의 다리로 생각할 수 있습니다.
House
및 Student
모델이 상호 작용하는 유일한 방법은 through
sorting_hats 조인 모델입니다. 조인 모델이 없으면 House
및 Student
연결 간에 연결이 없습니다. 즉, 각 학생(단수)은 분류 모자를 통과하고 하우스가 할당됩니다. 각 학생이 분류 모자를 통과하면 여러분은 멋진 호그와트 기숙사 중 하나가 되도록 배정됩니다! 그리핀도르, 후플푸프, 래번클로, 그리고.... 슬리데린.Sorting_hat
모델은 이 경우 조인 모델입니다. 아래에서 각 관계를 보다 명확하게 설정하겠습니다.Student
에는 많은 분류 모자가 있고 분류 모자를 통해 많은 집이 있습니다. House
에는 많은 sorting_hats와 sorting_hats를 통해 많은 학생들이 있습니다. Sorting_hat
는 학생(각 개별 학생)에 속하고 하우스(각 개별 하우스)에 속합니다. Ruby on Rails의 연결은 매우 혼란스러울 수 있습니다. 다음 번에 길에서 장애물을 만나면 연결을 비교할 수 있는 실제 시나리오를 생각하십시오. 협회가 실제로 얼마나 단순할 수 있는지에 대해 밝힐 것이라고 약속합니다. 예를 들어, 일련의 모델이 주어진 경우. 이러한 모델은 의사, 환자 및 약속입니다. 의사와 환자는 약속 없이는 상호 작용할 수 없습니다. 이는 약속이 우리의 JOIN 모델이 될 것임을 의미합니다. JOIN 모델은 다대다 관계를 생성합니다. 이것이 다대다 관계를 생각하는 한 가지 예입니다. 좀 더 명확하게 하기 위해 직접 예를 들어보세요. 이러한 관계를 종이에 그리거나 도표를 만드십시오.
이것이 레일의 다대다 연결에 대해 더 잘 이해하는 데 도움이 되었기를 바랍니다. 모두 즐거운 코딩하세요!
Reference
이 문제에 관하여(연관: Rails 다대다 관계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/teejaydixon/rails-many-to-many-relationships-ohn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)