Improvements

Rodrigo, te mandé un correo con los detalles necesarios.

En los primeros dos commits hice cambios al estilo que estabas siguiendo. Hay cosas que no son necesarias y otras más fáciles de expresar:
https://github.com/eljojo/turbobil/commit/2537b499d7af7470b4afda745d79db08721a50fc
https://github.com/eljojo/turbobil/commit/f9a472f5d0dcbca8a54517e1295bc83dba4256cb

Los mejores cambios se vienen en los últimos dos commits.
La lógica se puede simplificar mucho al trabajar con first_or_initialize.
https://github.com/eljojo/turbobil/commit/1191b1658a6dd02728f913606dd5964916746999

El commit que me costó más fue el último. Re-escribí el código final_price para que el segundo argumento sea opcional y en vez de pasar una id de ruta, se pase la ruta directamente.
https://github.com/eljojo/turbobil/commit/4d3198fea34b6ef2aa2d1e7c82e1bae269728f06