# การเชื่อมโยงของ ActiveRecord (Ruby on Rails) > has_many, belongs_to, has_one, has_and_belongs_to_many, polymorphic, dependent destroy - 24 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Ruby on Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions.md) ## 1. ควรใช้การเชื่อมโยงใดในโมเดล Comment เพื่อระบุว่าความคิดเห็นต้องเป็นของบทความหนึ่ง? **คำตอบ** การเชื่อมโยง belongs_to ใช้เพื่อกำหนดความสัมพันธ์ที่เรคคอร์ดหนึ่งเป็นของอีกเรคคอร์ดหนึ่ง ในกรณีนี้ Comment เป็นของ Article ตามแบบแผนแล้ว นี่หมายความว่าตาราง comments มีคอลัมน์ article_id ซึ่งเป็น foreign key ที่ชี้ไปยังตาราง articles ## 2. ควรใช้การเชื่อมโยงใดในโมเดล Article เพื่อให้สามารถมีความคิดเห็นที่เชื่อมโยงได้หลายรายการ? **คำตอบ** การเชื่อมโยง has_many กำหนดความสัมพันธ์แบบหนึ่ง-ต่อ-หลาย Article หนึ่งสามารถมีได้หลาย Comment การเชื่อมโยงนี้เป็นภาพสะท้อนของ belongs_to และไม่เก็บ foreign key ไว้ในตารางของตัวเอง แต่คาดหวังให้โมเดลที่เชื่อมโยง (Comment) มีคอลัมน์ article_id ## 3. ควรใช้การเชื่อมโยงใดเพื่อให้ผู้ใช้มีโปรไฟล์เดียว โดยที่โปรไฟล์เก็บ foreign key ไว้? **คำตอบ** การเชื่อมโยง has_one กำหนดความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง โดยที่โมเดลอีกฝั่งเก็บ foreign key ไว้ ในกรณี User has_one :profile ตาราง profiles จะมีคอลัมน์ user_id นี่คือสิ่งที่ตรงข้ามกันระหว่าง has_one/belongs_to ขึ้นอยู่กับว่า foreign key อยู่ที่ใด ## มีอีก 21 คำถาม - จะสร้างแบบจำลองความสัมพันธ์แบบหลาย-ต่อ-หลายระหว่าง Post และ Tag โดยใช้ตาราง join ที่มีแอตทริบิวต์เพิ่มเติมได้อย่างไร? - พฤติกรรมเริ่มต้นของออปชัน dependent: :destroy บนความสัมพันธ์ has_many คืออะไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ - [พื้นฐาน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-basics.md): 25 คำถาม, Junior - [การเขียนโปรแกรมเชิงวัตถุใน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-oop.md): 20 คำถาม, Junior - [พื้นฐาน Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-fundamentals.md): 18 คำถาม, Junior - [Routing & Controllers](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/routing-controllers.md): 22 คำถาม, Junior - [พื้นฐาน ActiveRecord](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-basics.md): 25 คำถาม, Junior - [Views และ ERB Templates](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/views-erb-templates.md): 20 คำถาม, Junior - [การสอบถาม ActiveRecord ขั้นสูง](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-queries.md): 28 คำถาม, Mid-Level - [ฟอร์ม Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-forms.md): 20 คำถาม, Mid-Level - [การยืนยันตัวตนและการอนุญาต](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/authentication-authorization.md): 22 คำถาม, Mid-Level - [Asset Pipeline สมัยใหม่และ frontend](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-asset-pipeline.md): 18 คำถาม, Mid-Level - [โหมด API ของ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-api-mode.md): 20 คำถาม, Mid-Level - [การทดสอบด้วย RSpec](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-testing-rspec.md): 24 คำถาม, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-job-background-jobs.md): 20 คำถาม, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/action-cable-websockets.md): 18 คำถาม, Mid-Level - [ActionMailer](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/action-mailer.md): 18 คำถาม, Mid-Level - [ActiveStorage](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-storage.md): 20 คำถาม, Mid-Level - [กลยุทธ์การ Caching](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/caching-strategies.md): 20 คำถาม, Mid-Level - [การ Migration ขั้นสูง](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/database-migrations-advanced.md): 20 คำถาม, Mid-Level - [Rails Engines และแอปแบบโมดูลาร์](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-engines-modular-apps.md): 18 คำถาม, Senior - [การเพิ่มประสิทธิภาพการทำงาน](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/performance-optimization.md): 26 คำถาม, Senior - [Design Patterns ใน Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-design-patterns.md): 22 คำถาม, Senior - [เมตาโปรแกรมมิงใน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-metaprogramming.md): 20 คำถาม, Senior - [ความปลอดภัยของ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-security.md): 22 คำถาม, Senior - [GraphQL กับ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/graphql-rails.md): 20 คำถาม, Senior - [การดีพลอยและโปรดักชัน](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-deployment-production.md): 20 คำถาม, Senior - [Monitoring & Logging](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/monitoring-logging.md): 20 คำถาม, Senior - [กลยุทธ์การอัปเกรด Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-upgrade-strategies.md): 18 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-associations