2010-08-04 3 views
1

я имею довольно среднюю форму в Rails, корыто blog_kitРубин на Rails форма f.text_area содержит дополнительные пробелы

<% 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 остается от этой части. Но это может быть частью проблемы?

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

ответ

5

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

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