Salut,

Comment reproduire sur les controlleurs le comportement polymorphique
des modèles ? Bon dis comme ça c pas forcement clair. Alors reprenons
l'exemple de l'Agile Web Development with Rails :

Les classes Article, Sound, Image héritent de CatalogEntry grâce à
l'association polymorphique. Ces trois classes ont un attribut qui est
le contenu (content) avec des types différents.

class CatalogEntry < ActiveRecord::Base
  belongs_to :resource, :polymorphic => true
end

class Article < ActiveRecord::Base
  has_one :catalog_entry, :as => :resource
end

class Sound < ActiveRecord::Base
  has_one :catalog_entry, :as => :resource
end

class Image < ActiveRecord::Base
  has_one :catalog_entry, :as => :resource
end

Maintenant j'aimerais avoir un controlleur pour afficher le contenu de
ces modèles. J'imagine avoir un controlleur par classe. A priori je
compte afficher le catalogue et appeller la méthode d'affichage sur
l'élément du catalogue. Donc j'appelle la methode show_content du
controlleur CatalogEntryController qui lui devrait répercuter l'appel
sur la même méthode du controlleur fils.

class CatalogEntryController < ApplicationController
  def show_content
Et là j'aimerais appeler la méthode show_content du controller "fils".
C'est bête mais je ne sais pas comment faire.
  end
end

class ArticleController < CatalogEntryController
  def show_content
  end
end

class SoundController < CatalogEntryController
  def show_content
  end
end

class ImageController < CatalogEntryController
  def show_content
  end
end

Comment appelle-t-on la méthode de la classe fille ? Pour appeller la
méthode de la classe parent c'est "super" mais comment ça marche dans
l'autre sens ??

Toute aide serait appréciée !
H
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à