sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur mappar man en modells heltalsattribut till en sträng?

Kontrollera enum av ActiveRecord - doc .

Här kan du konfigurera din :status :

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

  def format_status
    status.to_s.humanize
  end
end

Det kommer att skapa metoder som detta:

hotel.waiting_contract?
hotel.designing?

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

Hoppas det hjälper!

UPPDATERA

Liknande funktionalitet kan uppnås genom att åsidosätta status själva metoden, även om det är mer rekommenderat att ha separata metoder:

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

  def status
    super.to_s.humanize
  end
end

Dessutom dekoratörer är något du bör titta på för vyspecifika metoder.



  1. SQL Right Join

  2. MySQL-trigger för att aktiveras vid ändring eller släpp

  3. SQL Oracle LEFT JOIN och SUBQUERY-fel:ORA-00905:sökord saknas

  4. Återanvänd aliasfält i SQL SELECT-sats