2011-06-11 3 views
1

J'ai quelques modèles qui ressemblent à ceci:Comment gérer une association polymorphique simple dans mes vues?

class Basket 
    has_many :fruits, :dependent => :destroy 
end 

class Fruit 
    belongs_to :basket # do I need a polymorphic association here? 
end 

class Apple < Fruit 
    validate :crunchy 
end 

class Banana < Fruit 
    validate :peelable 
end 

Fruit est abstrait dans le sens que vous ne créez jamais, mettre à jour, etc., les fruits, mais plutôt des pommes ou des bananes. Cela signifie que je ne peux pas écrire quelque chose comme edit_fruit_path(@fruit) dans mes vues et le résoudre automatiquement.

Que devrais-je écrire dans mes vues afin qu'il résout toujours à edit_apple_path(@fruit) ou edit_banana_path(@fruit)?

Répondre

0

Ce n'est pas un polymorphe mais plutôt un héritage de table unique.

Je suppose que vous hériterez de ActiveRecord :: Base à Fruit.

Ajoutez la colonne type à votre tableau de fruits. Vous pouvez maintenant faire edit_fruit_path(@apple) et ce sera l'objet Apple.

Questions connexes