Elimine la siguiente línea en class Patient :
attr_accessor :name, :pID
Lo que sucedió fue que attr_accessor reemplazado
los dos atributos de la columna de la base de datos :name y :pID (que se generaron automáticamente) con los suyos propios, dando como resultado dos atributos virtuales, :name y :pID .
Por lo tanto, los atributos virtuales se estaban configurando y validando en lugar de los atributos de la base de datos correspondientes, lo que dio como resultado que no hubiera errores pero sí valores nulos en la base de datos.