Ruby on Rails form f.text_area содержит дополнительные пробелы
-
25-09-2019 - |
Вопрос
У меня довольно средняя форма в рельсах, кормушка Blog_kit.
<% form_for(@blog_post, :html => { :multipart => true }) do |f| %>\
... other code
<%= f.text_area :body %>
<%= debug(@blog_post) %>
При редактировании блогов-поста тело внезапно содержит дополнительные пробелы (помеченные как _ для визуализации):
...sit amet eleifend diam imperdiet pharetra.
__
__## FOO?
__Morbi nec
Поскольку Textarea - это осознание пространства, он покажет пробелы. Об обновлении они добавляются в базу данных.
Эти пространства не в базе данных (до ошибочного обновления, упомянутого выше, то есть). Модель Blogpost.find (1) содержит эти пробелы.
script/console » b = BlogPost.find(1)
» puts b.body
...sit amet eleifend diam imperdiet pharetra.
## FOO?
Morbi nec
Похоже, что какая-то логика добавляет пробелы после получения базы данных, но перед рендерингом в форме частично. Кандидаты:
- BlueCloth. У меня есть это включено, но не может найти место, где он будет подключен к процессу нагрузки и изменять тело, прежде чем он отображается в текстурее.
- Хамль. Частичный _form.html.rb не (все же) мигрировал на _form.haml, поэтому я предполагаю, что Haml остается подальше от этого куска. Но это может быть частью неприятностей?
Я не знаю, с чего начать смотреть, поэтому любые подсказки будут очень рады.
Решение
Это проблема HAML. Видеть http://haml-lang.com/docs/yardoc/file.faq.html#q-preserve.
В моем случае моя форма еще не преобразована в HAML (например, вы), но у меня было приложение .html.haml преобразован. Похоже, что HAML делает некоторые отступы даже для частиц, которые не в формате HAML.