2010-11-25 7 views
0

Ich verwende mongoid, machinist 2 und pickle. Aber ich denke, diese Frage ist häufiger.Schienen, Gurke: make-Objekt und seine Assoziationen

Ich habe ein Konto Modell:

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

    referenced_in :user 
end 

und Benutzer:

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

    references_one :account 
end 

Ich habe folgendes Szenario (I reference_one Verein eingestellt):

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

Ich denke, das ist nicht so gute Idee verwenden Sie IDs so. Was ist die beste Vorgehensweise zum Erstellen von Objekten mit Assoziationen? Ich wäre nett wenn pickle. zum Beispiel könnte helfen.

Antwort

2

Sie können Pläne wie folgt aufgebaut:

User.blueprint do 
    name 
    # ... 
end 

Account.blueprint do 
    user 
    # ... 
end 

Und innen Gurke:

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

Wenn Gurke der Schritt oben nicht verarbeitet, können Sie Ihre eigenen Schritt Definition wie folgt erstellen:

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 
Verwandte Themen