Aunque es correcto que createllama newy luego savehay una gran diferencia entre las dos alternativas en sus valores de retorno.
Savedevuelve trueo falsedependiendo de si el objeto se guardó correctamente en la base de datos o no. Esto se puede usar para el control de flujo según el primer ejemplo en la pregunta anterior.
Createdevolverá el modelo independientemente de si el objeto se guardó o no. Esto tiene implicaciones para el código anterior en que la rama superior de laif instrucción siempre se ejecutará, incluso si el objeto falla las validaciones y no se guarda.
Si usa la createlógica de ramificación, corre el riesgo de fallas silenciosas, lo que no es el caso si usa new+ save.
create! no sufre el mismo problema que plantea y una excepción si el registro no es válido.
La createalternativa puede ser útil en controladores donde respond_withse usa para respuestas API (JSON / XML). En este caso, la existencia de errores en el objeto hará que los errores se devuelvan en la respuesta con un estado de unprocessable_entity, que es exactamente lo que desea de una API.
Siempre usaría la opción new+ savepara html, especialmente si confía en el valor de retorno para el control de flujo.