Question

J'ai une forme tout à fait moyenne Rails, creux blog_kit

<% form_for(@blog_post, :html => { :multipart => true }) do |f| %>\
  ... other code
  <%= f.text_area :body %>
  <%= debug(@blog_post) %>

Lors de l'édition d'un blog post, le corps contient soudainement des espaces supplémentaires (marqués comme _ pour visualiser):

...sit amet eleifend diam imperdiet pharetra.
__ 
__## FOO?
__Morbi nec

Parce qu'un textarea est conscient de l'espace, il montrera les espaces. En mise à jour, ils sont ajoutés à la base de données.

Ces espaces ne sont pas dans la base de données (avant la mise à jour erronous mentionné ci-dessus, qui est). Pas plus que le modèle BlogPost.find (1) contiennent ces espaces.

script/console » b = BlogPost.find(1)
» puts b.body
...sit amet eleifend diam imperdiet pharetra.

## FOO?
Morbi nec

Il apparaît une certaine logique ajoute les espaces, après la récupération de la base de données, mais avant de rendre sous la forme partielle. Les candidats sont:

  • BlueCloth. J'ai qui a permis, mais ne peut pas trouver un endroit où il se branche dans le processus de charge, et de modifier le corps avant qu'il ne soit rendu dans la zone de texte
  • HAML. Le n'est pas partielle _form.html.rb (encore) ont migré vers _form.haml, donc je suppose haml reste loin de cette pièce. Mais il pourrait faire partie du problème?

Je ne sais pas où commencer à chercher, donc des conseils serait la bienvenue.

Était-ce utile?

La solution

Ce problème est HAML. Voir http://haml-lang.com/docs/yardoc/ file.FAQ.html # q préserver

Dans mon cas, ma forme était pas encore converti en HAML (comme vous) mais j'avais le application.html.haml converti. Il semble que HAML fait un peu de même à indenter partials qui ne sont pas au format HAML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top