0

Je suis nouveau sur les rails et les tests et j'ai un problème avec le chargement de mes appareils.Rails, ne peut pas charger les données des appareils qui ont des relations HABTM

payment.yml
paiement:
    nom: quelque chose
    montant: 1,5
    événement: some_event
    utilisateur: un_utilisateur
    Description: longue text
    utilisateurs: un_utilisateur, some_user2


users.yml
un_utilisateur:
    email: [email protected]     pseudo: nom

some_user2:
    email: [email protected]
    pseudo: nom

Okey, de sorte que le problème est que quand je fais le functionaltest pour créer un paiement

test "devrait créer le paiement" faire
assert_difference (» Payment.count ') faire
    message: créer,: paiement => @ payment.attributes
fin

il envoie juste

< id paiement: néant, nom:, le montant "quelque chose": 1,5, event_id: 972288058, user_id: 63246679, created_at: « 2010-11-05 19:56 : 53 ", updated_at:" 2010-11-05 19:56:53 ", description:" texte long ">

et pas le tableau des utilisateurs avec plusieurs utilisateurs. J'utilise le "utilisateur" pour définir qui possède le paiement et les utilisateurs (dans une table de jointure séparée) comme une liste d'utilisateurs partageant le paiement.

Une idée de ce que je fais mal?

ici est le modèle pour les paiements

classe paiement < ActiveRecord :: Base
    has_many: commentaires,: as =>: commentable,: dependent =>: détruire
    belongs_to: événement
    belongs_to: l'utilisateur
    has_and_belongs_to_many: les utilisateurs
fin

Répondre

1

Pouvez-vous mettre le modèle pour le paiement? J'avais quelque chose de similaire et le problème était que le modèle était différent. Par exemple, s'il s'agit d'une classe ActiveRecord, vous devez vérifier comment elle et ses relations. Par exemple, si l'événement est en fait un « event_id » qui belongs_to une classe « événement », alors vous devriez mettre quelque chose de semblable à ceci:

payment.yml 
payment: 
    name: something 
    amount: 1.5 
    event_id: 1 
    user_id: 1 
    ... 
user.yml 
    id: 1 
    name: David Smith 
    status: Branch Manager 
    ... 
event.yml 
    id: 1 
    name: overdraft charge 
+0

mais que diriez-vous que je vais avoir un utilisateur qui est « belongs_to » et un utilisateur qui est "has_and_belongs_to_many"? – jonepatr

+0

Ruby fait cela, mais vous devez toujours le gérer dans le fichier yml de l'appareil. Dans mon exemple, disons que j'ai une relation de one-to-one avec le paiement et l'utilisateur. Aussi, j'ai un one-to-one avec le paiement et l'événement. Par exemple, dans mon modèle de paiement, j'aurais quelque chose comme ceci: belongs_to: user,: foreign_key => "user_id". Encore une fois, c'est dans la partie modèle. Consultez ce lien: http://api.rubyonrails.org/classes/Fixtures.html et recherchez "Références d'étiquettes pour les associations (belongs_to, has_one, has_many)" – marcelo

+0

L'avez-vous compris? – marcelo

Questions connexes