PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment mapper l'attribut entier d'un modèle sur une chaîne ?

Vérifier enum de ActiveRecord - doc .

Ici vous pouvez configurer votre :status :

class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def format_status
    status.to_s.humanize
  end
end

Cela créera des méthodes comme celle-ci :

hotel.waiting_contract?
hotel.designing?

hotel.waiting_contract!
hotel.format_status # => "Waiting contract"

J'espère que ça aide !

MISE À JOUR

Une fonctionnalité similaire peut être obtenue en remplaçant le status méthode elle-même, bien qu'il soit plus conseillé d'avoir des méthodes séparées :

class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def status
    super.to_s.humanize
  end
end

De plus, décorateurs sont quelque chose que vous devriez examiner pour les méthodes spécifiques à la vue.