2010-11-25 7 views
0

J'utilise mongoid, machinist 2 et pickle. Mais je pense que cette question est plus commune.Rails, concombre: faire objet et ses associations

J'ai un modèle de compte:

class Account 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    referenced_in :user 
end 

et utilisateur:

class User 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    references_one :account 
end 

J'ai le scénario suivant (je mis association reference_one):

Scenario: Client views his account 
    Given a user with id: "4ceede9b5e6f991aef000007" 
    And the following accounts exist: 
     | user_id      | 
     | 4ceede9b5e6f991aef000007  | 
     ..... 

Je pense que cela est pas si bonne idée utiliser des ID de cette façon. Quelle est la meilleure pratique de créer un objet avec des associations? Je serais bien si cornichon. par exemple, pourrait aider.

Répondre

2

Vous pouvez configurer des plans comme celui-ci:

User.blueprint do 
    name 
    # ... 
end 

Account.blueprint do 
    user 
    # ... 
end 

Et à l'intérieur du concombre:

Given the following accounts exist 
    | user | 
    | Fred | 
    | Ethel | 

Si cornichon ne gère pas l'étape ci-dessus, vous pouvez créer votre propre définition de l'étape comme ceci:

Given /^the following accounts:$/ do |class_name, table| 
    table.hashes.each do |attributes| 
    u = User.make! :name => attributes[:user] 
    Account.make! :user => u 
    end 
end