Dönüştürme yapmanın Railsy bir yolu var mı <br>?
Şu anda bunu şöyle yapıyorum:
mystring.gsub(/\n/, '<br>')
Dönüştürme yapmanın Railsy bir yolu var mı <br>?
Şu anda bunu şöyle yapıyorum:
mystring.gsub(/\n/, '<br>')
Yanıtlar:
Evet, raylarda simple_formattam olarak aradığınız şeyi yapan ve paragraf etiketleri de eklediği için biraz daha iyi vardır. Görmek
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format
Misal:
simple_format(mystring)
Not simple_formattemel HTML etiketlerini izin verir, ama aynı zamanda içinden metni geçer sanitizeo kullanıcı girişi için güvenli olmalıdır, böylece tüm komut dosyalarını kaldırır hangi.
simple_formatotomatik sağlanan metin sarar <p>etiketler ve bu işlevsellik kaçınılması edilemez.
javascript:alert(\no!\)Referansta verildiği gibi özel sözdizimini yorumlayan Rails'e dayanır . Kötü niyetli bilgisayar korsanlarının birlikte çalışabileceği sonsuz varyasyonlar ve gelecekteki varyasyonlar olabilir.
wrapper_tagdeğiştirmeye izin veren bir seçeneğe sahiptir<p>
Şunları yaparak daha genel hale getirebilirsiniz:
mystring.gsub(/(?:\n\r?|\r\n?)/, '<br>')
Bu şekilde DOS, * NIX, Mac ve yanlışlıkla geçersiz satır sonlarını kapatmış olursunuz.
simple_formatistiyorsanız, o normal ifadeye bölünebilir map, dizeleri açılış ve kapanış petiketlerinde sarmalamak için kullanın ve ardından onlara katılın. mystring.split(/(?:\n\r?|\r\n?)/).map {|s| "<p>#{s}</p>"}.jointest etmemiş olsam da yapmalıyım.
<%= sanitize(planning.benefits.split(/(?:\n\r?|\r\n?)/).map {|x| "<li class='collection-item'>#{x}</li>"}.join) %>. Ve bir çekicilik gibi çalışıyor, boohoo!
mystringkeyfi HTML içerebilir.
Kullanıcı girdisiyle uğraşırken buna dikkat etmelisiniz. etiketleri
simple_formatekler, <br>ancak diğer html etiketlerine izin verir !
Simple_format kullanıldığında, <b>Hello</b>" Merhaba " olarak görüntülenecektir, bunu istemeyebilirsiniz.
Bunun yerine <%= h(c.text).gsub("\n", "<br>").html_safe %>
h()html'yi kodlayacak, gsubsatır sonunu değiştirecek ve etiketlerin görüntülenmesine html_safeizin vereceksiniz <br>.
Bu, kullanıcının tam olarak ne girdiğini gösterecektir. Ayrıca html'yi yorumlarda tartışmaya da izin verir.
simple_formatTemel HTML etiketlerine izin verirken , metni de ilettiğini ve sanitizebu da potansiyel olarak kötü niyetli olabilecek her şeyi ortadan kaldırdığını unutmamak önemlidir . apidock.com/rails/ActionView/Helpers/TextHelper/simple_format
Basitçe kullan
white-space: pre-line;
css ve metin satır sonlarında kaydırılır.
Ayrıca ne yapmaya çalıştığınızı da düşünebilirsiniz - insanların girdiği metni güzel bir şekilde biçimlendiriyorsanız , kullanıcılarınızın HTML olan solucan kutusunu açmadan metinlerini biçimlendirmelerine izin veren Markdown gibi bir filtre düşünebilirsiniz . Bilirsiniz, Stack Overflow'da olduğu gibi.
Hayır! Orada sahip olduğunuz şey, yaygın olarak kullanılan alternatiftir. Çoğu insanın kullandığı tanım şudur:
def nl2br text
text.gsub(/\n/, '<br/>')
end
Bu şekilde adlandırılmıştır çünkü PHP işlevinin işlevselliğini aynı adla taklit eder .
mystring.gsub(/\r\n|\r|\n/, '\n')
benim için çalıştı