Как безопасно сохранить объект в базе данных, если он настаивает на том, что определенные ассоциации должны существовать? - PullRequest
0 голосов
/ 06 апреля 2020

Итак, у меня есть классы Patient и Doctor и таблица соединений Appointment. Я хочу иметь возможность создать Appointment только с классом Patient, без необходимости сразу связывать идентификатор Doctor.

Я использую postgre - sql.

Когда я пытаюсь выполнить вышеизложенное в консоли rails, я получаю следующее

#<ActiveModel::Errors:0x00007ff49a6cbdf8 @base=#<Appointment id: 1, date: nil, time_slot: nil, details: nil, doctor_id: nil, patient_id: 1, assigned?: false, created_at: nil, updated_at: nil>, @messages={:date=>["can't be blank"], :time_slot=>["can't be blank"], :doctor=>["must exist"], @details={:date=>[{:error=>:blank}], :time_slot=>[{:error=>:blank}], :doctor=>[{:error=>:blank}]

Я полагаю, что, возможно, есть способ переопределить это, но я также обеспокоен целостностью данных , У меня нет никаких проверок в моделях, поэтому, кроме того, я не уверен, почему объект Appointment, не имеющий определенных данных, является проблемой в первую очередь.

1 Ответ

0 голосов
/ 06 апреля 2020

Вы можете отказаться от проверки присутствия по умолчанию, принадлежащей

class Appointment < ApplicationRecord
  belongs_to :doctor, optional: true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...