2010-11-20 17 views
1

J'essaie d'exporter ma base de données de développement sqlite3 dans ma base de données de test. Pour ce faire, j'ai d'abord exporté mon modèle dans la console rails et l'ai enregistré dans un fichier. Maintenant, lorsque j'exécute rspec, il échoue en essayant d'analyser mymodels.yml. L'erreur que je reçois est:Le fichier to_yaml ne se charge pas correctement dans rspec (projet rails)

Failure/Error: Unable to find matching line from backtrace 
a YAML error occurred parsing /Users/MakeM/MyProject1/spec/fixtures/mymodels.yml. 

Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html The exact error was: NoMethodError: undefined method `keys' for nil:NilClass

Toute idée pourquoi je reçois cette erreur? Une chose que je devrais mentionner est que le yaml qui est produit par to_yaml me semble un peu étrange. Voici une partie:

--- 
- !ruby/object:MyModel 
    attributes: 
    id: 133 
    book: FirstBook 
    chapters: 50 
    created_at: 2010-10-06 05:03:15.709931 
    updated_at: 2010-10-06 05:03:15.709931 
    abbr: FB 
    attributes_cache: {} 

    changed_attributes: {} 

    destroyed: false 
    marked_for_destruction: false 
    new_record: false 
    previously_changed: {} 

    readonly: false 

Répondre

0

Il est préférable d'utiliser uniquement les données enregistrer sur votre base de données toutes les données disponibles inutiles Donc, essayez de générer votre YAML comme ça:

MyModel.all.map(&:attributes).to_yaml 

Attention, cette technique peut exploser votre RAM si vous avez beaucoup de données. Pensez à générer votre haml avec limite/offset. ou avec paginated_each de will_paginate.

+0

Merci! Que fait exactement le .map (&: attributs)? J'ai essayé de googler mais je n'ai rien trouvé pour m'aider à comprendre. – MakeM

+0

Cela ne semble pas fonctionner non plus. Je reçois le même "Échec/Erreur: Impossible de trouver la ligne correspondante de backtrace Bad data for ..." erreur. Bien que le yaml ressemble beaucoup plus à ce que cela devrait ressembler. – MakeM

+0

carte (&: attributs) Appel à tous les modèles de la méthode des attributs et la génération d'un tableau de résultat – shingara