
Асоціації ActiveRecord
has_many, belongs_to, has_one, has_and_belongs_to_many, polymorphic, dependent destroy
1Яку асоціацію слід використовувати в моделі Comment, щоб вказати, що коментар обов'язково належить статті?
Яку асоціацію слід використовувати в моделі Comment, щоб вказати, що коментар обов'язково належить статті?
Відповідь
Асоціація belongs_to використовується для визначення відношення, у якому один запис належить іншому. У цьому випадку Comment належить Article. За домовленістю це означає, що таблиця comments містить стовпець article_id, який є зовнішнім ключем до таблиці articles.
2Яку асоціацію слід використовувати в моделі Article, щоб дозволити мати кілька пов'язаних коментарів?
Яку асоціацію слід використовувати в моделі Article, щоб дозволити мати кілька пов'язаних коментарів?
Відповідь
Асоціація has_many визначає відношення один-до-багатьох. Один Article може мати кілька Comment. Ця асоціація є дзеркальним відображенням belongs_to і не зберігає зовнішній ключ у власній таблиці, а очікує, що пов'язана модель (Comment) має стовпець article_id.
3Яку асоціацію слід використовувати, щоб користувач мав один профіль, де профіль містить зовнішній ключ?
Яку асоціацію слід використовувати, щоб користувач мав один профіль, де профіль містить зовнішній ключ?
Відповідь
Асоціація has_one визначає відношення один-до-одного, де інша модель містить зовнішній ключ. У випадку User has_one :profile таблиця profiles міститиме стовпець user_id. Це протилежність has_one/belongs_to залежно від того, де розташований зовнішній ключ.
Як змоделювати відношення багато-до-багатьох між Post і Tag за допомогою таблиці зв'язку, що містить додаткові атрибути?
Яка типова поведінка опції dependent: :destroy для асоціації has_many?
+21 питань зі співбесід
Інші теми співбесід Ruby on Rails
Основи Ruby
Об'єктно-орієнтоване програмування в Ruby
Основи Rails
Routing & Controllers
Основи ActiveRecord
Views та шаблони ERB
Розширені запити ActiveRecord
Форми Rails
Автентифікація та авторизація
Сучасний Asset Pipeline та frontend
Режим API Rails
Тестування з RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Стратегії кешування
Розширені міграції
Rails Engines та модульні застосунки
Оптимізація продуктивності
Патерни проєктування Rails
Метапрограмування в Ruby
Безпека Rails
GraphQL із Rails
Розгортання та Продакшн
Monitoring & Logging
Стратегії оновлення Rails
Опануй Ruby on Rails для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно