SORU
29 HAZİRAN 2010, Salı


Raylar -- bir metin alanına satır sonu Ekle

Benim model içine girdi metin birkaç paragraf yapabileceğim bir rails uygulaması var. Sorun ben giriş için herhangi bir Satır sonları nasıl bilmiyorum.

"{Ln} {/} ln ; { } ve {br} {/} br" ama bu sadece metin ve hiçbir sonu html olarak görüntüler. eklemeye çalıştım

Metin alanı denetimi modeli girdisi içinde yer html herhangi kullanacak şekilde ayarlayabilirsiniz zaten var mı?

Raylar tanıyacak kadar türü, bir çizgi buraya koy hey yapabileceğim herhangi bir şey var mı?

CEVAP
29 HAZİRAN 2010, Salı


Sorun çok daha sonra render olarak değerini düzenleme değil. Bir button içinde düzenleme sırasında değeri yeni satır karakterleri eklemek için, sadece return tuşuna bas. Yeniden Düzenle bu değer daha sonra, boşluk hala orada olmalı.

Boşluk oluşturma zor bir parçasıdır. HTML, boşluk genellikle önemsİzdİr. Tarayıcınızı kullanır gibi bir boşluk oluşturucu herhangi devamlı bir dize için tek bir boşluk gösterecektir. Bu yüzden sadece sayfaya değer damping yeterli olmayacaktır:

<%= obj.description %>

Senin değer "One \t \n \n Two", olsa bile "One Two" olarak ekranda gösterilir.

Bu yeni çizgi karakterler görüntülendiğinde aslında bu satırları ayırmak için, bunları işleme önce HTML dönüştürmek için ihtiyacınız olacak:

<%= obj.description.gsub(/\n/, '<br/>') %>

Eğer kullanıcılar HTML dahil edilecek veri giriyor tabiki, eğer değerler XSS karşı korumak için kaçmak gerekir. Eğer yeni hatları desteklemek için ihtiyacınız olan tek şey, bu kadar basit olmalı:

<%= h(obj.description).gsub(/\n/, '<br/>') %>

Eğer daha karmaşık biçimlendirme izin vermek istiyorsanız, Markdown Textile içine bak Raylar Yardımcısı görüntülemek için yöntemler sağlar (). Sadece emin eğer herhangi bir destek olursa ne soruşturmada XSS önleme sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • B3ASTTY™

    B3ASTTY™

    27 Mayıs 2013
  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • mobilenet.cz

    mobilenet.cz

    26 NİSAN 2008