У меня возникают трудности получения тест пройти:RSpec ActiveRecord :: RecordNotFound
Ошибка:
Failure/Error: post :create, { appointment: { dentist_id: '1', patient_id: '2', appt_date: '2015-12-05 09:00:00' } }
ActiveRecord::RecordNotFound:
Couldn't find Dentist with 'id'=
Назначение Контроллер:
def create
@dentist = Dentist.find(params[:dentist_id])
@appointment = @dentist.appointments.new(appointment)
if Appointment.exists?(:appt_date => @appointment.appt_date)
render :new
else
@appointment.save
redirect_to dentist_path(@dentist)
end
end
Назначение Spec:
describe 'POST #create' do
it 'assigns a newly created appointment as @appointment' do
post :create, { appointment: { dentist_id: '1', patient_id: '2', appt_date: '2015-12-05 09:00:00' } }
expect(assigns(:appointment)).to be_a(Appointment)
expect(assigns(:appointment)).to be_persisted
end
end
Что мне не хватает? Любая помощь будет оценена по достоинству.
Я попытался свое решение, и теперь появляется следующее сообщение об ошибке: Сбой/Ошибка: сообщение: создание, {dentist_id: «16», назначение: {patient_id : '2', appt_date: '2015-12-05 09:00:00'}} ActiveRecord :: RecordNotFound: Не удалось найти стоматолога с 'id' = 16 –
ну у вас есть дантист с ID 16 в ваша тестовая база данных? – sevenseacat
Это, вероятно, потому, что запись 'Dentist' с идентификатором' 16' не существует. Обновлен мой ответ, чтобы включить инструкции для создания записи «Dentist» до запуска вашего теста. – theunraveler