Щоб створити нову модель у Ruby on Rails, вам слід використовувати генератор Rails. Припустимо, що ви хочете створити модель Post
, яка буде мати асоціацію з моделлю User
.
-
Створіть модель
Post
за допомогою генератора Rails.rails generate model Post title:string content:text user:references
Ця команда створить файл міграції для таблиці
posts
з полямиtitle
,content
таuser_id
.
-
Запустіть міграцію для створення таблиці у базі даних.
rails db:migrate
-
Додайте асоціацію у моделі
Post
.# app/models/post.rb class Post < ApplicationRecord belongs_to :user end
-
Додайте асоціацію у моделі
User
.# app/models/user.rb class User < ApplicationRecord has_many :posts end
Тепер модель Post
налаштована на використання асоціації belongs_to :user
, що дозволить зв’язати кожен запис Post
з користувачем User
. В полі user_id
таблиці posts
буде зберігатися зовнішній ключ, який посилається на запис у таблиці users
.
Приклад використання.
# Створення нового поста для користувача з id = 1
user = User.find(1)
post = user.posts.build(title: "Назва посту", content: "Зміст посту")
post.save
Цей приклад створює новий пост для користувача з id = 1, прив’язуючи його до цього користувача за допомогою асоціації.