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.