Zkontrolujte enum
z ActiveRecord
– doc
.
Zde můžete nakonfigurovat svůj :status
:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def format_status
status.to_s.humanize
end
end
Vytvoří takové metody:
hotel.waiting_contract?
hotel.designing?
hotel.waiting_contract!
hotel.format_status # => "Waiting contract"
Doufám, že to pomůže!
AKTUALIZACE
Podobné funkce lze dosáhnout přepsáním status
samotná metoda, i když se doporučuje mít samostatné metody:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def status
super.to_s.humanize
end
end
Kromě toho dekorátoři jsou něco, co byste se měli podívat na metody specifické pro zobrazení.