sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo asignar el atributo entero de un modelo a una cadena?

Comprobar enum de ActiveRecord - doc .

Aquí puedes configurar tu :status :

class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def format_status
    status.to_s.humanize
  end
end

Creará métodos como este:

hotel.waiting_contract?
hotel.designing?

hotel.waiting_contract!
hotel.format_status # => "Waiting contract"

¡Espero que eso ayude!

ACTUALIZAR

Se puede lograr una funcionalidad similar anulando el status método en sí, aunque es más recomendable tener métodos separados:

class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def status
    super.to_s.humanize
  end
end

Además, decoradores son algo que debe buscar en los métodos específicos de vista.