如何从以下字符打印确切数量的字符?

时间:2013-07-10 12:24:16

标签: ruby-on-rails ruby

我有一个对象列表,其中一个属性为:text。我想只打印每个:text的前250个字符。

Rails中有没有简单的方法可以做到这一点?

以下是我如何进行迭代:

-@cows.each do |c|
        %tr
          %td= c.id
          %td= c.description
          %td

其中,description是文字。

2 个答案:

答案 0 :(得分:5)

您可以使用truncate

c.description.truncate(250, :separator => ' ')

它会自动为您添加"...",并且您有分隔符选项,因此您不必担心在中间切断单词。

答案 1 :(得分:3)

是的,这只是普通的Ruby代码:

%td= c.description[0..249]

string[n..m]将为您提供string的子字符串,从n元素开始,以m结尾。见http://ruby-doc.org/core-2.0/String.html#method-i-5B-5D

虽然你可能应该考虑一下这个代码在你的模型中是否比在视图中更好?