2010-10-08 5 views
0

Comment construire un modèle avec les associations suivantes (j'ai essayé mais n'a pas pu le faire fonctionner):créer des modèles avec sqlite3 + DataMapper + rubis

chaque Ordre a: un client, un SalesRep, beaucoup OrderLine que chacun a un article.

J'ai essayé: quand je fais: Customer.all (Customer.orders.order_lines.item.sku.like => "% BLEU%") la sortie est: []
au lieu de: « [# < "@ client id = 1 @ name =" Dan Kubb ">] »

Quand je supprimer SalesRep: cela fonctionne

client
a n,:. ordres
a n,: articles,: par =>: commander

SalesRep
a n,: commandes
a n,: articles,: à travers =>: pour

Commander
belongs_to: client
belongs_to: technicien
a n: order_lines
a n,: articles,: grâce =>: ORDER_LINE

OrderLine
belongs_to: commander
belongs_to: article

item
a n,: order_lines

+0

Est-ce que cela réussit DataMapper.finalize? – yxhuvud

Répondre

0

Étant donné que la sortie n'est pas une erreur, il se peut que vous n'ayez pas les données dans votre base de données.

Effectuez les opérations suivantes avec irb -r your_models_file.rb: - c = Customer.create(:name => "Dan Kubb")

  • o = Order.new(:customer => c) # Create and add technician unless it's :required => false
  • i = Item.create(:sku => "BLUE") # Plus any other required fields
  • ol = OrderLine.create(:order => o, :item => i)
  • o.order_lines << ol; o.save

Cela devrait créer les enregistrements n EEDED pour que cela fonctionne. Essayez ceci, et si cela ne fonctionne pas, postez votre fichier complet de modèles afin que nous puissions avoir une meilleure idée de ce qui se passe.

Questions connexes