Donc, si j'ai une association polymorphe dans mon application, y a-t-il un moyen d'y ajouter des méthodes? Par exemple, si: post,: photo et: utilisateur sont tous associés à: classements avec une association polymorphe nommée: classable, puis-je créer des méthodes sur: classable qui serait alors hérité par: post,: photo ou: user? Je suppose que, si cela est possible, il faudrait que j'ajoute un modèle Rankable à l'application et que je définisse des méthodes à l'intérieur. Est-ce possible? Si oui, et j'ai raison de devoir créer un modèle, de quelle classe hériterait ce modèle ou comment le définirais-je comme étant cette relation polymorphe?Comment ajouter des méthodes à une association polymorphe de rails?
Répondre
Je ne sais pas comment vous faites cela avec un modèle, mais vous pouvez facilement ajouter des méthodes avec mixins:
module RankableMethods
def do_something_useful
...
end
end
class Post < ActiveRecord::Base
include RankableMethods
belongs_to :rankable, :polymorphic = true
end
p = Post.new
p.respond_to?(:do_something_useful) # true
Vous devez séparer les concepts de « polymorphes » comme elle s'applique à un Association polymorphique ActiveRecord, et «polymorphique» dans le sens classique de l'héritage de la POO. Un type polymorphe 'classable' dans le premier sens n'existe pas à l'exception d'une convention de base de données dans ActiveRecord qui permet à un enregistrement dans une table de se référer à des enregistrements dans plusieurs autres tables possibles. Si vous voulez exprimer cette abstraction plus spécifiquement dans votre modèle d'objet - le polymorphisme dans le second sens - vous devrez déclarer une classe ou un module distinct dans lequel votre ActiveRecords «classable» peut se mélanger ou hériter.
- 1. Association polymorphe Ruby on Rails
- 2. rails association polymorphe (base de données héritée)
- 3. Association polymorphe inversée
- 4. Association Polymorphe Relationnelle Mongoid
- 5. Ruby on Rails:: inclure dans une association polymorphe avec des sous-modèles
- 6. Quels index devraient être ajoutés pour une association polymorphe dans Ruby on Rails?
- 7. Comment ajouter une nouvelle entrée à une association multiple has_many?
- 8. Validation des rails pour une association has_many
- 9. Rails polymorphique plusieurs à plusieurs association
- 10. Association d'une association un-à-plusieurs avec une association plusieurs-à-plusieurs dans Rails 3
- 11. Uploadify + Paperclip + Rails Association imbriquée before_save
- 12. Comment ajouter des téléchargements de fichiers à une application rails?
- 13. rails façon de transférer l'objet polymorphe à travers l'URL
- 14. Problème avec l'association polymorphe dans Rails
- 15. Comment trouver une relation polymorphe
- 16. Organiser des partiels pour une ressource polymorphe
- 17. Rails Association Problème
- 18. Rails Model Association Confusion
- 19. Rails: Passer l'objet association à la vue
- 20. Routage d'un modèle polymorphe avec plusieurs nids dans des rails?
- 21. Ajouter des fonctionnalités à Rails
- 22. Rails Model-Association Formulaire Question
- 23. Rails Association Question
- 24. Comment faire une association has_many through sur une association has_many through rails?
- 25. Rails index d'une association
- 26. Eager charger cette association de rails
- 27. Comment commander une association has_many via Ruby on Rails?
- 28. Tricky Association Question Rails
- 29. Rails AR valide_unicité_de la relation polymorphe
- 30. Comment puis-je ajouter des propriétés à une association (relation) avec Entity Framework