2011-01-27 22 views
12

Bir Google Grupları abonelik formu için HTML kodlu bir dize döndüren Rails uygulamam için yardımcı bir yöntemim var. Ne yazık ki, bu sayfa düz metin gibi çıkıyor. HTML olarak oluşturmaya nasıl zorlayabilirim? Şimdiden teşekkürler.Ruby on Rails Helper Method - HTML, düz metin olarak görüntüleniyor

+0

Lütfen bize bir kod gösterin; Özellikle ERB dosyanızdaki yardımcının çağrıldığı ve sonuçların görüntülendiği yer. –

cevap

42

Yardımcınızın sonucu, Rails 3'te "html_safe" olarak işaretlenmelidir. Aksi takdirde, etiketler çıkarılacaktır.

def my_helper 
    data = "<p>Hello!</p>" 
    data.html_safe 
end 
+0

Teşekkürler! Mükemmel çalıştı. – SZH

+0

cevabını kabul edin lütfen – Mauricio

+0

Daha önce cevabı kabul etmeye çalıştım ama 8 dakika daha beklemem gerektiğini söyledi. Şimdi bana izin verdi. – SZH

2

Rails html sanitize ile ilgili bir sorun olduğunu varsayalım. raylardan tüm görünüm şablonlarında varsayılan olarak açıktır, HTML çıktısını kaçmaya Artık h (dize) aramak gerekir

changelog. unescaped dizgesini istiyorsanız, işlecini (string) arayın. Bu durumda bu

def custom_check_box(checked) 
    '<span class="my-custom-checkbox '+(checked ? 'checked' : '')+'"></span>'.html_safe 
end 

gibi birden dizeleri katılırken

sadece son kısmı güvenli html olarak işaretlenmiş, bu

0

bir şey için dikkat etmektir deneyin. Her şeyi aldığınızdan emin olun.

def custom_check_box(checked) 
    ('<span class="my-custom-checkbox '+(checked ? 'checked' : '')+'"></span>').html_safe 
end