使用表单助手在 Rails 的预填充文本区域中保留换行符
Posted
技术标签:
【中文标题】使用表单助手在 Rails 的预填充文本区域中保留换行符【英文标题】:Preserve newlines in pre-populated textarea in Rails using form helpers 【发布时间】:2014-06-12 11:44:18 【问题描述】:假设你有这个:
<%= form_for post, remote: true do |f| %>
<!-- some other fields -->
<%= f.label :content %>
<%= f.text_area :content %>
<%= f.submit %>
<% end %>
我在使用post.content.gsub(/\n/, "<br />")
显示content
时轻松解决了问题,但是在我编辑帖子的content
时,textarea
完全忽略了换行符(因为无法在@ 上运行gsub
987654327@).
因此,具有多个段落的长文本完全失去了换行符。
我发现了很多这样的问题,但从来没有专门针对这种情况。
【问题讨论】:
试试f.text_area :content, value: do_your_gsub
啊,我没想到。但是,当我使用post.content.gsub(/\n/, "<br />")
时,它只是在换行符处显示文字字符串<br />
,而不是换行。
【参考方案1】:
好的,所以解决方案非常简单。感谢 apneadiving 引起我的注意,我可以简单地添加 value: post.content
以手动将帖子的内容填充到 textarea 字段,这使我可以对其进行操作。
这解决了我的问题:
<%= f.text_area :content, value: post.content.gsub(/\n/, '\n') %>
【讨论】:
我将post.content.gsub(/\n/, '\n')
更改为(post.content || "").gsub(/\n/, '\n')
,因为我在使用新帖子的表单时遇到错误(内容为空白/无)。以上是关于使用表单助手在 Rails 的预填充文本区域中保留换行符的主要内容,如果未能解决你的问题,请参考以下文章