Почему мой вложенный помощник text_area добавляет HTML-теги? - PullRequest
2 голосов
/ 07 ноября 2011

У меня есть text_area в частичной форме в сложной форме, которая называется так

<%= f.fields_for :notes do |notes_form| %>
  <%= render :partial => 'note', :locals => {:f => notes_form, :operation => f, :count => operation.notes.count} %>
<% end %>
<p><%= add_child_link "Add note", :operation_notes %></p>

, а частичная часть выглядит следующим образом

<% count ||= 2 %>
<div class='fields'>
<%= f.text_area :note_text, :rows => "4", :class => "notes" %>
<%= remove_child_link "x", f, count %>
</div>

Напоэтому создайте и удалите дочерние ссылки.

Проблема, с которой я сталкиваюсь, заключается в том, что, если я добавляю заметку с текстом 'abcd', когда я поднимаю форму редактирования, я получаю '<p>abcd</p>'.Если в заметке есть разрывы строк, добавляются теги <br />.Кажется, что помощник формы text_area использует помощник simple_format, но я не знаю почему.Может кто-нибудь помочь, так как это очень нежелательное поведение?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

А, решено,

Ранее на той же странице я отображал заметку и использовал simple_format, чтобы отформатировать ее с помощью

<%= simple_format note.note_text %>

Кажется, что simple_format несколько разрушительный, так как после этого вызов note.note_text всегда возвращает форматированный текст Если я изменю вышеизложенное на

<%= simple_format note.note_text.dup %>

тогда атрибут note_text не изменяется, и я получаю соответствующие результаты.

Мне придется внимательнее присмотреться к simple_format, но это действительно кажется мне нежелательным поведением.

EDIT

Похоже, это было исправлено в Rails 3.1

1 голос
/ 07 ноября 2011

Я подозреваю, что в вашей модели Note есть что-то, что обрабатывает текст. Проверьте обратные вызовы в этой модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...