Si vous savez à l'avance exactement quelles classes doivent être définies, vous devez probablement générer du code qui les définit explicitement avec le mot clé class
pour plus de clarté. Toutefois, si vous avez vraiment besoin de les définir dynamiquement, vous pouvez utiliser Object.const_set
en combinaison avec Class.new
. Pour définir deux classes d'enfants de ActiveRecord::Base
:
%w{A B C D}.each do |name|
Object.const_set name, Class.new(ActiveRecord::Base)
end
Le résultat de ce qui précède est de quatre nouvelles classes nommées A..D
, tous les enfants de ActiveRecord::Base
.
Wow, c'est gentil! merci beaucoup – marshluca