Sprawdź enum z ActiveRecord - dokument
.
Tutaj możesz skonfigurować swój :status :
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def format_status
status.to_s.humanize
end
end
Utworzy takie metody:
hotel.waiting_contract?
hotel.designing?
hotel.waiting_contract!
hotel.format_status # => "Waiting contract"
Mam nadzieję, że to pomoże!
AKTUALIZUJ
Podobną funkcjonalność można osiągnąć poprzez nadpisanie status samą metodę, chociaż bardziej zalecane jest posiadanie oddzielnych metod:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def status
super.to_s.humanize
end
end
Ponadto dekoratory są czymś, na co powinieneś zwrócić uwagę, jeśli chodzi o metody specyficzne dla widoku.