2010-12-09 5 views
1

In meinem Rails 3 Anwendung habe ich ein Benutzer Modell mit den folgenden FeldernMaschinist anstelle von Armaturen

name: string 
    email: string 
    children: has_many association to another model 

ich machinist 2 bin mit Scheindaten zu erzeugen, seinen Bauplan aussehen

User.blueprint do 
    name { 'user{sn}' } 
    email { '{object.name}@domain.com' } 
end 

Und Anwender Einheit Test:

require 'test_helper' 

class UserTest < ActiveSupport::TestCase 
    should have_many(:children) 
    should validate_uniqueness_of(:email) 
    should_not allow_value("blah").for(:email) 
    should_not allow_value("b lah").for(:email) 
    should allow_value("[email protected]").for(:email) 
    should allow_value("[email protected]").for(:email) 
end 

Beim Erstellen des Benutzermodells wurde eine Fixture-Datei erstellt. Mein Verständnis ist, dass, wenn ich rake ausführen, Rails diese Fixture-Datei verwendet, um Objekte zu generieren, die in den Tests verwendet werden. Was ich nicht will. Ich möchte Rails Machinist Blaupausen verwenden nur ein nahtloser wie es die Fixtures-Datei verwendet.

Gibt es eine Möglichkeit, dies zu tun? Gibt es eine Möglichkeit, Rails mitzuteilen, dass sie Blueprints anstelle von Fixtures verwenden müssen?

Antwort

4

Fügen Sie diese auf config/application.rb:

config.generators do |g| 
    g.fixture_replacement :machinist 
end 

Sie können die alten Armaturen auch Ordner sicher Müll, wenn Sie sie offenbar behalten wollen!