Rails使用索引和分隔符截断帮助程序

时间:2013-09-24 00:02:46

标签: ruby ruby-on-rails-3

是否存在类似于Rails truncate方法的方法,该方法接受索引,其中我可以指示截断的开始和分隔符参数,以便它不是从一个单词或字符串的中间开始的?

例如:

“我喜欢午饭后泡茶的味道。”

我想从索引9开始抓取一个大小为15的字符串,这样会导致:

“泡泡的味道”

1 个答案:

答案 0 :(得分:1)

我认为没有一个功能可以做到这一点,所以你必须自己编写。我建议首先砍掉字符串的开头,然后使用truncate来处理结束。这样的事情可能会做你想要的:

def truncate_beginning_and_end(str, beginning, length, separator)
  first_space_before_beginning = str[0..beginning].rindex(separator)
  str_without_beginning = str[(first_space_before_beginning + 1)..-1]
  truncate(str_without_beginning, length: length, separator: separator, omission: '')
end