Форма Ruby on Rails f.text_area содержит дополнительные пробелы - PullRequest
1 голос
/ 04 августа 2010

У меня довольно средняя форма в Rails, через 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

Поскольку текстовая область распознает пространство, она покажет пробелы. При обновлении они добавляются в базу данных.

Эти пробелы отсутствуют в базе данных (то есть до упомянутого выше ошибочного обновления). Модель BlogPost.find (1) также не содержит этих пробелов.

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

## FOO?
Morbi nec

Похоже, какая-то логика добавляет пробелы после извлечения базы данных, но перед рендерингом в виде части. Кандидаты:

  • BlueCloth. Я включил это, но не могу найти место, где он будет подключаться к процессу загрузки, и изменить тело, прежде чем оно будет отображено в текстовой области
  • HAML. Часть _form.html.rb (пока) не перенесена в _form.haml, поэтому я предполагаю, что haml остается в стороне от этой части. Но это может быть частью проблемы?

Я не знаю, с чего начать, поэтому любые советы будут очень кстати.

1 Ответ

5 голосов
/ 12 января 2011

Это проблема HAML.См. http://haml -lang.com / docs / yardoc / file.FAQ.html # q-preserve

В моем случае моя форма еще не была преобразована в HAML (как и вы), ноЯ преобразовал application.html.haml.Кажется, что HAML делает некоторые отступы даже для партиалов, которые не в формате HAML.

...