2010-07-09 5 views
0

HI, J'ai un modèle "Article", qui a du contenu HTML.Code HTML dans Rails YAML-appareils

J'ai créé des données de test avec des installations YAML et face le problème suivant:

Comme je le dis "rake db: accessoires: charge", l'erreur suivante apparaît:

ArgumentError: syntax error on line 22, col 0: <li>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</li> 

fragment Fixtures, il se plaint a propos, est le suivant:

Article_1: 
    title: Test Article 1 
    content: | 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> 
    <ul> 
     <li>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</li> 
     <li>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</li> 
    </ul> 

Il semble, comme le code HTML a quelque chose, cela ne devrait pas apparaître dans YAML ...

Quelle est la bonne façon d'écrire un tel appareil?

Répondre

0

J'ai rencontré une erreur très similaire aujourd'hui lorsque je devais charger une longue chaîne JSON dans mon appareil.

Malheureusement, je n'ai pas réussi à le réparer en utilisant Yaml mais en passant au CSV j'ai fait l'affaire. Peut-être que c'est quelque chose que vous pouvez essayer?

Au lieu d'articles.yml, vous le renommerez en articles.csv. Gardez à l'esprit que la première ligne du fichier CSV est un enregistrement d'en-tête qui doit contenir une liste de noms de champs séparés par des virgules, après quoi les lignes suivantes peuvent contenir vos données.

Plus de détails disponibles au http://ar.rubyonrails.org/classes/Fixtures.html ce qui était d'une grande aide.

0

Je viens juste de passer en revue quelque chose de similaire à XML embarqué aujourd'hui dans un appareil. Vous devriez juste être capable d'envelopper votre HTML entre guillemets doubles et cela devrait fonctionner. Évitez les guillemets doubles dans votre code HTML avec une double citation supplémentaire.

Vous avez absolument besoin du | pour gérer les multi-lignes mais parce que je manquais cela au début, merci pour ce conseil.