2012-01-03 4 views

Odpowiedz

10

Niestety - nie można. Jeśli sprawdzisz źródło na http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format zobaczysz, że tagi p są zawinięte wokół zawartości bezwarunkowo.

Można utworzyć pomocnika, który wykorzystuje kod simple_format, ale go zmodyfikować, aby nie zawierać znaczniki p ...

+1

czy istnieje alternatywa dla simple_format? wszystko, czego chcę, aby moja metoda wyświetliła się, to ' *' i po tym, jak HTML znowu dobrze odczytał – leonel

+1

- simple_format ma tylko 9 linii, a jeśli usunięto drugą, ósmą i dziewiątą linię, nie wstawiłbym tagów P już. Ale nie jestem pewien, co masz na myśli przez "interpretację kodu HTML"? – elijah

+2

wygląda jak w Railsach 4 będziesz mógł zmienić tag opakowania tak jak 'simple_format (my_text, {}, wrapper_tag:" div ")' ale to nie działa dla mnie w Rails 3 – FireDragon

1

Prawdopodobnie nie, co naprawdę chciał, ale ... skończyło się w ten sposób:

module ApplicationHelper 
    def nl2br s 
    split_paragraphs(sanitize(s, tags: [])).join('<br>').html_safe 
    end 
end 

UPD Albo lepiej to:

def nl2br s 
    sanitize(s, tags: []).gsub(/\n/, '<br>').html_safe 
end 
4

można określić wrapper_tag opcję.

simple_format 'Hello', {}, wrapper_tag: 'span' 

Kod ten będzie:

<span>Hello</span>