来自text_area的linebreak在数据库中丢失

时间:2017-04-02 00:12:59

标签: ruby-on-rails forms line-breaks

我在test rails app中使用了text_area

= form_for @post do |f|
= f.text_field :title, size: '40'
= f.text_area :description, size: "80x20"

使用RedCarpet渲染降价

.post-description
  = markdown(post.description)

当我在text_area中插入一个列表时,由于描述字段中缺少换行符,因此无法正确显示降价。

结果是这样的

=markdown("1. test 2. test")

我猜表单中的换行符需要保存在数据库中。

使用带有换行符的简单字符串进行测试

=markdown("1. test /n 2. test")

按预期工作。

任何人都可以给我一个提示吗?

1 个答案:

答案 0 :(得分:1)

通常textarea字段的换行符保存为\r\n,并且可以由redcarpet进行解析。您需要检查post.description输出,检查描述编辑是否存在一些jquery插件,如果有回调修改description。找出description字段为什么没有'有换行符。

require 'redcarpet'

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new)

p markdown.render("1. test 2. test")
p markdown.render("1. eee\r\n2. 113")