64 votes

Comment décrire une colonne d'énumération dans une migration Rails 3?

Comment décrire une colonne d'énumération dans une migration Rails 3?

68voto

asiniy Points 430

Rails 4.1 contient enum pour le moment!

Vous pouvez écrire juste

 class User < ActiveRecord::Base
  enum status: [ :admin, :user, :banned ]
end
 

Pour la migration écrire

 t.integer :status
 

Rails 3 et 4.0

La meilleure solution à mon avis est simple_enum gem.

6voto

eAlchemist Points 109

Je viens de trouver une implémentation rails 3 de enum-columns. Découvrez-le: https://github.com/electronick/enum_column

3voto

demas Points 10567

Quelque chose comme

 class User < ActiveRecord::Base
   validates_inclusion_of :status, :in => [:active, :inactive]

   def status
     read_attribute(:status).to_sym
   end

   def status= (value)
     write_attribute(:status, value.to_s)
   end
 end
 

1voto

Pasta Points 843

Je vais utiliser le joyau enum_fu: https://github.com/ikspres/enum_fu

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X