PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como mapear o atributo integer de um modelo para uma string?


Verifique enum de ActiveRecord - doc .

Aqui você pode configurar seu :status :
class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def format_status
    status.to_s.humanize
  end
end

Ele criará métodos como este:
hotel.waiting_contract?
hotel.designing?

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

Espero que ajude!

ATUALIZAÇÃO

Funcionalidade semelhante pode ser obtida substituindo o status método em si, embora seja mais aconselhável ter métodos separados:
class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def status
    super.to_s.humanize
  end
end

Além disso, decoradores são algo que você deve procurar por métodos específicos de exibição.