为什么我的嵌套text_area帮助器添加了html标签?

时间:2011-11-07 02:33:30

标签: ruby-on-rails-3 forms textarea

我有一个复杂形式的部分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 个答案:

答案 0 :(得分:2)

啊解决了,

在同一页面的早些时候,我正在显示笔记,并使用simple_format格式化

<%= simple_format note.note_text %>

似乎simple_format有点破坏性,因此,对note.note_text的调用总是返回格式化文本。如果我将上面改为

<%= simple_format note.note_text.dup %>

然后不改变note_text属性,我得到了适当的结果。

我将不得不更仔细地看看simple_format,但这确实让我感到不良行为。

修改

看起来这已在Rails 3.1中得到纠正

答案 1 :(得分:1)

我怀疑你的Note模型中有一些正在处理文本的东西。检查此模型中的回调。