활성 레코드 연결 확인
레일즈란?
Rails is a web application development framework written in the Ruby programming language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks. [https://guides.rubyonrails.org/getting_started.html]
웹 프레임워크는 애플리케이션에 구조를 제공하고 구성 세부 정보보다는 기능에 집중할 수 있도록 합니다.
활성 레코드 연결이란 무엇입니까?
연결을 이해하려면 먼저 Active Record를 살펴봐야 합니다.
활성 레코드
Active Record facilitates the creation and use of business objects whose data requires persistent storage to a database. https://guides.rubyonrails.org/active_record_basics.html
활성 레코드 개체는 데이터베이스에 저장될 키-값 쌍이 있는 해시입니다.
다음은 User 모델이 생성되는 방법의 예입니다.
rails g resource user name:string age:integer
스키마 파일을 보면 저장된 데이터(키-값 쌍)를 볼 수 있습니다.
# ../db/schema.rb
create_table "users", force: :cascade do |t|
t.string "name"
t.integer "age"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
이제 이름과 나이로 사용자를 만들 수 있습니다. 레일 콘솔을 입력하여 이를 수행합니다.
위에 표시된 것처럼 이제 이름이 문자열 "Pharia"이고 나이가 정수 27인 사용자 인스턴스가 있습니다.
그러나 사용자의 애완 동물을 보관해야 하는 경우에는 어떻게 해야 합니까?
동물 이름 문자열이 있는 "pet"키를 가질 수 있습니다.
create_table "users", force: :cascade do |t|
t.string "name"
t.integer "age"
t.string "pet" # new key to store pet
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
그러나 이것은 애완 동물이 자신의 속성을 가지고 있는 경우를 설명하지 않습니다.
또한 사용자가 애완동물을 여러 마리 키우는 경우에는 어떻게 됩니까?
이것은 활성 레코드 연결이 함께 제공되는 곳입니다.
활성 레코드 연결
In Rails, an association is a connection between two Active Record models. Why do we need associations between models? Because they make common operations simpler and easier in your code.
https://guides.rubyonrails.org/association_basics.html
User 모델에 애완 동물 속성을 추가하는 대신. 대신 Pet의 새로운 Active Record 모델을 생성합니다.
rails g resource pet name:string sex:string user_id:integer
이 모델에서 중요한 키는 user_id입니다. 이를 통해 애완 동물이 속한 사용자를 알 수 있기 때문입니다. 외래 키입니다.
create_table "pets", force: :cascade do |t|
t.string "name"
t.string "sex"
t.integer "user_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
이제 이 관계를 설명하기 위해 모델을 업데이트합니다.
class User < ApplicationRecord
has_many :pets
end
class Pet < ApplicationRecord
belongs_to :user
end
연결 확인
연결을 선언하면 선언 클래스는 연결과 관련된 메서드를 얻습니다.
먼저 연결이 작동하는지 확인하기 위해 collection.build(attributes = {}) 메서드를 활용합니다.
collection.build(attributes = {}) 메서드
연결이 작동하는지 확인하려면:
둘째, 연관 방법을 활용하겠습니다.
연관 방법
메서드가 올바른 데이터를 반환하고 있습니다. 협회가 작동합니다!
결론
활성 레코드 연결을 확인할 때 association.build(attributes = {}) & association과 같은 기본 제공 메서드를 사용하여 개체 관계가 예상대로 반환되는지 확인합니다.
& 기억하세요... 즐거운 코딩하세요, 친구들! =)
Reference
이 문제에 관하여(활성 레코드 연결 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/phariale/verifying-active-record-associations-32c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)