2011-01-27 13 views
12

Mam metodę pomocniczą dla mojej aplikacji Rails, która zwraca ciąg znaków z kodem HTML dla formularza subskrypcji Grup dyskusyjnych Google. Niestety pojawia się na stronie jak zwykły tekst. Jak zmusić go do renderowania jako HTML? Z góry dzięki.Metoda pomocnicza Ruby on Rails - HTML jest wyświetlany jako zwykły tekst

+0

Pokaż nam kod; szczególnie miejsce w pliku ERB, w którym wywoływany jest helper i wyświetlane są wyniki. –

Odpowiedz

42

Wynik twojego pomocnika musi zostać oznaczony jako "html_safe" w Rails 3. W przeciwnym razie znaczniki zostaną usunięte.

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

Dzięki! Działa doskonale. – SZH

+0

zaakceptuj odpowiedź: – Mauricio

+0

Próbowałem zaakceptować odpowiedź wcześniej, ale powiedziałem, że muszę poczekać jeszcze 8 minut. Teraz pozwól mi. – SZH

2

Przypuszczam, że to był problem z oczyszczaniem html Rails. z szyn changelog

Już nie trzeba zadzwonić h (string) uciec wyjście HTML jest przez domyślne w widoku szablonów. Jeśli chcesz uzyskać ciąg znaków bez znaków, zadzwoń na raw (ciąg).

spróbować

0

Jedno zwrócić uwagę jest podczas łączenia wielu ciągów jak ten

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

W tym przypadku, tylko ostatnia część jest oznaczona jako bezpiecznego html. Upewnij się, że masz wszystko.

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