В этой статье мы рассмотрим, как использовать генератор скаффолдов Ruby on Rails для создания базового приложения с отношением принадлежности между двумя моделями. Мы рассмотрим шаги, необходимые для создания каркаса, настройки ассоциации и продемонстрируем различные методы выполнения операций CRUD над связанными моделями.
Настройка проекта:
Чтобы начать, убедитесь, что в вашей системе установлены Ruby и Rails. Создайте новое приложение Rails, используя следующую команду:
rails new BelongsToApp
cd BelongsToApp
Создание каркаса:
Далее мы создадим каркас для наших моделей. Предположим, у нас есть две модели: Authorи Book. Модель Bookпринадлежит модели Author. Чтобы сгенерировать каркас, используйте следующие команды:
rails generate scaffold Author name:string
rails generate scaffold Book title:string author:references
Это создаст необходимые файлы и миграции для обеих моделей, а также соответствующих им контроллеров и представлений.
Настройка ассоциации.
После создания каркаса нам необходимо настроить связь между моделями Authorи Book. Откройте файл app/models/book.rbи добавьте следующую строку:
belongs_to :author
Откройте файл app/models/author.rbи добавьте следующую строку:
has_many :books
Выполнение операций CRUD:
Теперь, когда наш каркас и ассоциация настроены, мы можем выполнять операции CRUD над моделями. Давайте рассмотрим некоторые распространенные методы:
-
Создание нового автора:
author = Author.new(name: 'John Doe') author.save -
Создание новой книги, связанной с автором:
book = Book.new(title: 'The Ruby Book', author: author) book.save -
Получение всех книг конкретного автора:
author = Author.find_by(name: 'John Doe') books = author.books -
Обновление имени автора:
author = Author.find_by(name: 'John Doe') author.update(name: 'Jane Doe') -
Удаление книги:
book = Book.find_by(title: 'The Ruby Book') book.destroy
В этой статье мы рассмотрели процесс создания каркаса Ruby on Rails с отношением «принадлежит». Мы научились настраивать связь между моделями и продемонстрировали различные методы выполнения CRUD-операций. Используя генератор scaffold и понимая связь, вы можете быстро создавать мощные веб-приложения с помощью Ruby on Rails.