2017-04-02 3 views
0

ich einen text_area in meinem Test verwenden Schienen appZeilenumbrüche aus text_area in der Datenbank fehlen

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

und macht Abschlag RedCarpet mit

.post-description 
    = markdown(post.description) 

Wenn ich eine Liste in die text_area einzufügen, ist Abschlag nicht Auf Grund fehlender Zeilenumbrüche im Beschreibungsfeld korrekt gerendert.

Das Ergebnis ist so etwas wie dies

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

Ich denke, Zeilenumbrüche aus dem Formular in der Datenbank gespeichert werden müssen.

als Test einen einfachen String mit einem Zeilenumbruch mit

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

wie erwartet gearbeitet.

Kann mir jemand einen Tipp geben?

Antwort

1

Normalerweise hat das Feld textarea Newline gespeichert als \r\n, und es kann durch die redcarpet analysiert werden. Sie müssen die post.description Ausgabe überprüfen, überprüfen, ob es einige jquery Plugin für die Beschreibung bearbeiten, wenn es Callback gibt, die die description ändern. Finden Sie den Grund, warum description Feld es keine Zeilenschaltung hatte.

versuchen

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") 
+0

Am Ende I Doppelzeilenumbrüche (\ r \ n \ r \ n) in dem Beschreibungsfeld gefunden. – Christian

+0

Endlich die wahre Ursache gefunden. li und ul CSS Stile änderten die Listen. Deine Antwort ist korrekt und mein Code funktioniert jetzt ohne gsub. Entschuldigung für die Verwirrung. – Christian

Verwandte Themen