연관: Rails 다대다 관계

Rails에서 프로그래밍할 때 배워야 할 수많은 관계가 있습니다. 가장 일반적인 것 중 하나는 다대다 관계입니다. Rails에서 프로그램을 작성한다면 의심의 여지가 없습니다. 이것은 반드시 알아야 할 연관성입니다. 다대다 관계는 has_many :through 매크로를 활용하는 것으로 구성됩니다. 이것이 올바르게 작동하려면 두 개의 모델과 조인 모델이 필요합니다. 예제 모델에서는 Student , HouseSorting_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 다른 모델을 개별적으로(단일) 합니다.

조인 테이블을 다른 두 모델 사이의 다리로 생각할 수 있습니다. HouseStudent 모델이 상호 작용하는 유일한 방법은 through sorting_hats 조인 모델입니다. 조인 모델이 없으면 HouseStudent 연결 간에 연결이 없습니다. 즉, 각 학생(단수)은 분류 모자를 통과하고 하우스가 할당됩니다. 각 학생이 분류 모자를 통과하면 여러분은 멋진 호그와트 기숙사 중 하나가 되도록 배정됩니다! 그리핀도르, 후플푸프, 래번클로, 그리고.... 슬리데린.


Sorting_hat 모델은 이 경우 조인 모델입니다. 아래에서 각 관계를 보다 명확하게 설정하겠습니다.
  • Student에는 많은 분류 모자가 있고 분류 모자를 통해 많은 집이 있습니다.
  • House에는 많은 sorting_hats와 sorting_hats를 통해 많은 학생들이 있습니다.
  • Sorting_hat는 학생(각 개별 학생)에 속하고 하우스(각 개별 하우스)에 속합니다.

  • Ruby on Rails의 연결은 매우 혼란스러울 수 있습니다. 다음 번에 길에서 장애물을 만나면 연결을 비교할 수 있는 실제 시나리오를 생각하십시오. 협회가 실제로 얼마나 단순할 수 있는지에 대해 밝힐 것이라고 약속합니다. 예를 들어, 일련의 모델이 주어진 경우. 이러한 모델은 의사, 환자 및 약속입니다. 의사와 환자는 약속 없이는 상호 작용할 수 없습니다. 이는 약속이 우리의 JOIN 모델이 될 것임을 의미합니다. JOIN 모델은 다대다 관계를 생성합니다. 이것이 다대다 관계를 생각하는 한 가지 예입니다. 좀 더 명확하게 하기 위해 직접 예를 들어보세요. 이러한 관계를 종이에 그리거나 도표를 만드십시오.

    이것이 레일의 다대다 연결에 대해 더 잘 이해하는 데 도움이 되었기를 바랍니다. 모두 즐거운 코딩하세요!

    좋은 웹페이지 즐겨찾기