2010-02-22 35 views
12

1)我想按文字自动换行,以便每行不超过56个字符。 有没有这样做的方法,还是我需要推出自己的?在文字边界将文字换行显示

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

我的观点:

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

会使:

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

2)我想用4个空格来缩进文本,以便:

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

会使:

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

回答

19

我相信你正在寻找的功能是word_wrap。像这样的东西应该工作:

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

可以结合起来,与gsub得到你想要的缩进:

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

但你可能应该移动到这一个辅助方法,让您的观点干净。

+0

+1谢谢你的回答和例子! – 2010-02-22 16:52:14

9

也许word_wrap帮手可以帮到你。

要缩进文本,您可以用换行符+4个空格替换\n(换行符)。

+0

+1感谢您的时间和答案。这看起来正是我想要的。 – 2010-02-22 16:51:40