2010-02-22 22 views
12

1) Tôi muốn tự động quấn văn bản theo các từ sao cho mỗi dòng không vượt quá 56 ký tự. Có phương pháp nào để thực hiện việc này hay tôi cần phải tự cuộn?Đóng gói văn bản thành các dòng tại các ranh giới từ

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

Quan điểm của tôi:

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

sẽ làm cho:

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

2) Tôi muốn thụt văn bản bằng 4 chỗ để:

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

sẽ làm cho :

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

Trả lời

19

Tôi tin rằng chức năng bạn đang tìm kiếm là word_wrap. Một cái gì đó như thế này nên làm việc:

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

Bạn có thể kết hợp điều đó với gsub để có được thụt đầu dòng mà bạn mong muốn:

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

Nhưng có lẽ bạn nên di chuyển mà thành một phương pháp helper để vẫn giữ quan điểm của bạn sạch sẽ.

+0

+1 Cảm ơn bạn đã trả lời và các ví dụ! –

9

Có lẽ word_wrap trợ giúp có thể giúp bạn.

Để thụt lề văn bản, bạn có thể thay thế \n (dòng mới) bằng dòng mới + 4 dấu cách.

+0

+1 Cảm ơn bạn đã dành thời gian và câu trả lời. Điều này trông giống như những gì tôi muốn. –

Các vấn đề liên quan