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.