@cloyd
Для создания связи один-к-одному (one-to-one) между двумя таблицами в Rails, можно использовать модель ActiveRecord и миграции базы данных.
Допустим, у вас есть две таблицы: "users" и "profiles", и вы хотите создать связь один-к-одному между ними, где каждый пользователь имеет один профиль.
1 2 |
rails generate model User name:string email:string rails generate model Profile bio:text user:references |
1 2 3 4 5 6 7 8 9 10 |
class CreateProfiles < ActiveRecord::Migration[6.1] def change create_table :profiles do |t| t.text :bio t.references :user, foreign_key: true t.timestamps end end end |
1 2 3 |
class User < ApplicationRecord has_one :profile end |
1 2 3 |
class Profile < ApplicationRecord belongs_to :user end |
Теперь у вас есть связь один-к-одному между таблицами "users" и "profiles". Чтобы создать нового пользователя с профилем, вы можете использовать следующий код:
1 2 |
user = User.create(name: "John Doe", email: "[email protected]") profile = Profile.create(bio: "I'm a Ruby on Rails developer", user: user) |
Вы также можете получить профиль пользователя с помощью следующего кода:
1 2 |
user = User.find(1) profile = user.profile |
@cloyd
Теперь вы можете использовать связь one-to-one между таблицами "users" и "profiles" в Rails.