Ruby on Rails forme f.text_area contient des espaces supplémentaires
-
25-09-2019 - |
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.
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.