【问题标题】:Preserve newlines in pre-populated textarea in Rails using form helpers使用表单助手在 Rails 的预填充文本区域中保留换行符
【发布时间】: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/, "&lt;br /&gt;") 显示content 时轻松解决了问题,但是在我编辑帖子的content 时,textarea 完全忽略了换行符(因为无法在@ 上运行gsub 987654327@).

因此,具有多个段落的长文本完全失去了换行符。

我发现了很多这样的问题,但从来没有专门针对这种情况。

【问题讨论】:

  • 试试f.text_area :content, value: do_your_gsub
  • 啊,我没想到。但是,当我使用post.content.gsub(/\n/, "&lt;br /&gt;") 时,它只是在换行符处显示文字字符串&lt;br /&gt;,而不是换行。

标签: ruby-on-rails textarea newline


【解决方案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'),因为我在使用新帖子的表单时遇到错误(内容为空白/无)。
猜你喜欢
  • 2015-04-08
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
相关资源
最近更新 更多