2010-02-22 13 views
12

1) Desidero avvolgere automaticamente un testo con parole in modo che ogni riga non superi i 56 caratteri. Esiste un metodo per farlo o devo eseguire il rollover?Disposizione del testo in linee ai limiti delle parole

@comment_text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." 

mio punto di vista:

<%= @comment_text.cool_string_function(56) %> 

renderebbe:

Lorem ipsum dolor sit amet, consectetur adipisicing 
elit, sed do eiusmod tempor incididunt ut labore et 
dolore magna aliqua. 

2) Voglio rientrare il testo di 4 spazi in modo che:

<%= @comment_text.cool_string_function({:width => 56, :indent => 4}) %> 

renderebbe :

Lorem ipsum dolor sit amet, consectetur adipisicing 
    elit, sed do eiusmod tempor incididunt ut labore et 
    dolore magna aliqua. 

risposta

19

Credo che la funzione che stai cercando sia word_wrap. Qualcosa del genere dovrebbe funzionare:

<%= word_wrap @comment_text, :line_width => 56 %> 

È possibile combinare che con gsub per ottenere il rientro desiderato:

<%= word_wrap(@comment_text, :line_width => 52).gsub("\n", "\n ") %> 

Ma probabilmente si dovrebbe muoversi che in un metodo di supporto per mantenere la visualizzazione pulita.

+0

+1 Grazie per la risposta e gli esempi! –

9

Forse l'aiutante word_wrap può aiutarti.

Per riordinare il testo è possibile sostituire \n (newline) con newline + 4 spazi.

+0

+1 Grazie per il vostro tempo e la risposta. Questo sembra esattamente quello che voglio. –

Problemi correlati