Estoy intentando que los clientes realicen un Order y, cuando lo hagan Order tendrá el status: uncompleted en la entrada de la base de datos de Order .
Un Worker puede reclamar uno de esos Order y comenzar un Job . Cuando el Worker tomó el Order y lo convirtió en un Job , intento hacer que el estado del Order status: inprogress y el estado del Job status: inprogress y luego, cuando el Worker completó el Job el estado del Order debería ser status: completed y el estado del Job status: completed .
Me pregunto si configuré las relaciones de mi modelo de la manera correcta para poder modificar el status del Order y el Job cuando un Worker crea un Job dentro de una base de datos PostgreSQL.
Mis modelos están configurados así:
trabajador.rb
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :jobsorden.rb
belongs_to :jobtrabajo.rb
belongs_to :worker has_one :workerPuede lograr dicha funcionalidad mediante el uso de disparadores SQL o devoluciones de llamada de ActiveRecord . Particularmente after_update devolución de llamada . La idea es que cuando actualizas los datos de un registro, se ejecuta algún código.
O puede usar gemas de máquinas de estado para administrar sus estados. La gema AASM , por ejemplo, tiene devoluciones de llamadas integradas que se ejecutan cuando cambia el estado.