sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik het integer-attribuut van een model toewijzen aan een string?

Controleer enum van ActiveRecord - doc .

Hier kunt u uw :status . configureren :

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

  def format_status
    status.to_s.humanize
  end
end

Het maakt methoden zoals deze:

hotel.waiting_contract?
hotel.designing?

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

Ik hoop dat dat helpt!

UPDATE

Soortgelijke functionaliteit kan worden bereikt door de status . te overschrijven methode zelf, hoewel het beter is om aparte methoden te gebruiken:

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

  def status
    super.to_s.humanize
  end
end

Bovendien, decorateurs zijn iets waar u naar moet kijken voor weergavespecifieke methoden.



  1. Kan ik datumrijen in kolommen draaien zonder de datums in de spil op te geven? Oracle SQL

  2. Waarom werkt mijn Postgres-database een tijdje en kan de server niet worden gestart nadat deze opnieuw is opgestart?

  3. Een PostgreSQL-database initialiseren zonder de PostgreSQL-server uit te voeren

  4. Speciale tekens in PHP / MySQL