Задать вопрос
@anasasiakiri4enko

Почему по разному работают has_one and has_many?

Добрый вечер.

Делаю следующее для has_many:
rails g model Author name:string (has_many :books - добавляю в модель)
rails g model Book title:string author:references (belongs_to :author - создаётся автоматически в модели)
rails db:migrate
Захожу в rails console и выполняю:
Author.create! name: 'Name'
Author.first.books.create! title: 'Hello i title!!!'
Всё работает.


Делаю следующее для has_one
rails g model User name:string (has_one :profile - добавляю в модель)
rails g model Profile about:string user:references (belongs_to :user - создаётся автоматически в модели)
rails db:migrate
Захожу в rails console и выполняю:
User.create! name: 'Name' (успешно создаётся первый юзер)
User.first.profile.create! about: 'hello world' (не создаётся)


Почему с ассоциацией has_many работает а с has_one такое поведение?
Как мне создавать 1 к 1, в чем ошибка?
  • Вопрос задан
  • 300 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Code Basics
    Ruby для начинающих
    1 месяц
    Далее
  • Хекслет
    Разработчик на Ruby on Rails
    5 месяцев
    Далее
  • Skillbox
    Ruby on Rails с нуля
    10 месяцев
    Далее
Решения вопроса 1
nbekseitov
@nbekseitov
Ruby developer
Добавляемые методы для has_many и для has_one
user = User.create! name: 'Name'
user.create_profile! about: "hello world"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы