Classe abstraite?

Bonjour,

Les classes abstraites n’existent visiblement pas en Ruby, mixins est-il
la solution la plus élégante ?

Zambra wrote:

> .. mixins est-il  la solution la plus élégante ?

Solution à quel problème?

Alain

A quoi ca sert une classe abstraite dans un language pour lequel il
n’y a pas de typage statique ?

On 3/5/06, Zambra [email protected] wrote:

Bonjour,

Les classes abstraites n’existent visiblement pas en Ruby, mixins est-il
la solution la plus élégante ?


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

… mixins est-il la solution la plus élégante ?

Solution à quel problème?

Si j’ai une classe vehicule et des sous classes voiture, camion
j’ai donc

class vehicule < ActiveRecord::Base
end

et
class voiture < vehicule
end
class camion < vehicule
end

lorsque je veux afficher la liste des voitures, je n’ai rien

si je remplis vehicule dans la base (vehicule ne devrait pas être
instanciable theoriquement), la liste des voitures
@voitures = Voiture.find_all affiche la liste des vehicules.

Je ne sais pas si je suis pas très clair…

Zambra

> lorsque je veux afficher la liste des voitures, je n'ai rien
> si je remplis vehicule dans la base (vehicule ne devrait pas être
> instanciable theoriquement), la liste des voitures
> @voitures = Voiture.find_all affiche la liste des vehicules.

> Je ne sais pas si je suis pas très clair...

Non, c’est pas clair.
Il faudrait voir un morceau de code complet, parce que ça doit marcher.

Conseil: essaye le code Rails dans la console (./script/console). C’est
plus rapide.

Alain

Zambra wrote:

class voiture < vehicule
end
class camion < vehicule
end

lorsque je veux afficher la liste des voitures, je n’ai rien

si je remplis vehicule dans la base (vehicule ne devrait pas être
instanciable theoriquement), la liste des voitures
@voitures = Voiture.find_all affiche la liste des vehicules.

Rails a ce genre de fonctionnalité built-in, cherche ‘single
inheritance’ dans la doc de rails, si c’est déjà ce que tu utilises
vérifie que c’est pas la colonne ‘type’ qui manque.

Renaud