2009-08-23 6 views
4

J'ai un problème pour essayer de le faire fonctionner. J'ai un modèle d'article, et chaque article peut avoir d'autres articles ou rien.Modèle récursif dans Rails

Est-ce possible ou dois-je faire de la magie?

Répondre

6

Vous pouvez utiliser le acts as tree plugin ou construire votre auto:

belongs_to    :parent, 
          :foreign_key => "parent_id", 
          :class_name => "Item" 

has_many     :children, 
          :foreign_key => 'parent_id', 
          :class_name => 'Item', 
          :order => 'created_at ASC', 
          :dependent => :delete_all 
+5

une alternative Table Entité-Attribut-Valeur (EAV) à a_a_tree est acts_as_nested_set qui a beaucoup de meilleures performances pour les opérations de lecture. –

0

Il y a probablement quelques plugins/gemmes AR builtins ou libs pour traiter la plupart des cas d'utilisation non bizarre, mais: pas clair si vous parlez d'un

  • join table/Actve association d'enregistrement, (relationsip hétérogène , 2 ou trois tables)
  • dans/de acts_as_tree imbriquée, (arborescence d'objets, comme dans un tableau) ou
  • héritage de table unique, des objets assez hétérogènes dans une table

ou, la salissant chose, une - conception

http://en.wikipedia.org/wiki/Entity-Attribute-Value_model