2010-12-09 13 views
1

Dans mes Rails 3 application, j'ai un utilisateur modèle avec les champs suivantsUtiliser machiniste à la place des appareils

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

J'utilise machinist 2 pour générer des données simulées, son plan ressemble

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

et l'unité de l'utilisateur 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 

Lorsque j'ai généré le modèle utilisateur, il a créé un fichier d'appareils. Ma compréhension est que lorsque je cours rake, Rails utilise ce fichier de fixture pour générer des objets utilisés dans les tests. Ce qui n'est pas ce que je veux. Je veux que Rails utilise les plans de machiniste juste de façon transparente car il utilise le fichier des appareils.

Existe-t-il un moyen de le faire? Existe-t-il un moyen de dire aux rails qu'il doit utiliser des plans plutôt que des appareils?

Répondre

4

Ajoutez ceci à config/application.rb:

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

Vous pouvez en toute sécurité les vieux appareils poubelle dossier aussi, sauf si vous voulez les garder évidemment!

Questions connexes