Проверете enum
на ActiveRecord
- doc
.
Тук можете да конфигурирате вашия :status
:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def format_status
status.to_s.humanize
end
end
Той ще създаде методи като този:
hotel.waiting_contract?
hotel.designing?
hotel.waiting_contract!
hotel.format_status # => "Waiting contract"
Надяваме се, че това помага!
АКТУАЛИЗАЦИЯ
Подобна функционалност може да се постигне чрез замяна на status
самият метод, въпреки че е по-препоръчително да имате отделни методи:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def status
super.to_s.humanize
end
end
Освен това, декоратори са нещо, което трябва да разгледате за специфични за изгледа методи.