활성 레코드 연결(일대다)
이 블로그에서는 협회에 대해 간단히 살펴보기로 했습니다.
왜 협회인가?
연관 선언은 두 개의 활성 레코드 모델을 연결하는 편리한 방법입니다. 이렇게 하면 데이터 모델을 논리적으로 조작할 수 있습니다.
2개의 별도 모델이 있는 경우 마이그레이션 폴더의 외래 키를 사용하여 함께 가져올 수 있습니다.
여기서 우리는 사용자의 외래 키를 촛불의 테이블에 저장하고 있습니다. 초는 사용자에게 속하기 때문에 어느 사용자에게 속하는지 식별할 수 있는 "user_id"가 있어야 합니다.
ActiveRecord::Schema.define(version: 2022_08_15_211950) do
create_table "users", force: :cascade do |t|
t.string "name"
end
create_table "candles", force: :cascade do |t|
t.string "scent"
t.string "brand"
t.integer "user_id"
end
end
그러나 이것이 작동하려면 활성 레코드 내에서 이들을 함께 묶고 관계를 발전시키는 특별한 매크로가 필요합니다. 이를 일대다라고 합니다.
매크로란 무엇입니까?
매크로는 우리를 위해 코드를 작성하는 방법입니다. attr_reader 및 attr_accessor와 같은 매크로에 익숙하다면 Active Record에는 클래스와 함께 사용할 수 있는 새로운 인스턴스 메서드를 생성하는 몇 가지 편리한 매크로가 함께 제공됩니다.
has_many
가 촛불을 든다고 생각해야 합니다. "candles"라는 이름은 단일 사용자가 많은 양초를 가질 수 있기 때문에 복수형이어야 합니다. belong_to
는 사용자입니다. candles on이 한 사용자에게 속하기 때문에 "user"가 단수로 쓰여진 것을 알 수 있습니다.# has_many
# app/models/user.rb
class User < ActiveRecord::Base
has_many :candles
# naming is plural
# indicates a one-to-many association
# a user can have many candles in this example
# candles associated via `user_id`
end
# belongs_to
# app/models/candle.rb
class Candle < ActiveRecord::Base
belongs_to :user
# must be singular
# Sets up a 1:1 connection with another model - User in this case
# Books associated to a user via `user_id` on candles table
end
실행
rake db:migrate
하고 씨앗을 심은 후에만 실행rake console
하여 모두 제대로 연결되었는지 확인할 수 있습니다.출처:
Reference
이 문제에 관하여(활성 레코드 연결(일대다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yarixar/active-record-associations-3jk5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)