sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan kortlægger man en models heltalsattribut til en streng?

Tjek enum af ActiveRecord - doc .

Her kan du konfigurere din :status :

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

  def format_status
    status.to_s.humanize
  end
end

Det vil skabe metoder som denne:

hotel.waiting_contract?
hotel.designing?

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

Håber det hjælper!

OPDATERING

Lignende funktionalitet kan opnås ved at tilsidesætte status selve metoden, selvom det er mere tilrådeligt at have separate metoder:

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

  def status
    super.to_s.humanize
  end
end

Desuden dekoratører er noget, du bør undersøge for visningsspecifikke metoder.



  1. Kan ikke indlæse DLL 'SqlServerSpatial.dll'

  2. Indsæt datoformat i dd/mm/åååå gennem laravel Eloquent Model

  3. Shell-script til at udføre pgsql-kommandoer i filer

  4. Sådan finder du de mest almindelige ord i en MySQL-database og gennemsnit en anden kolonne