PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie ordnet man das Integer-Attribut eines Modells einer Zeichenfolge zu?

Aktivieren Sie enum von ActiveRecord - doc .

Hier können Sie Ihren :status konfigurieren :

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

  def format_status
    status.to_s.humanize
  end
end

Es erstellt Methoden wie diese:

hotel.waiting_contract?
hotel.designing?

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

Hoffe das hilft!

AKTUALISIEREN

Eine ähnliche Funktionalität kann durch Überschreiben des status erreicht werden Methode selbst, obwohl es ratsamer ist, separate Methoden zu haben:

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

  def status
    super.to_s.humanize
  end
end

Außerdem Dekorateure sind etwas, das Sie nach ansichtsspezifischen Methoden untersuchen sollten.