У меня есть помощник, который я использую для усечения строк в Rails, и он отлично работает, когда я усекаю предложения, заканчивающиеся в периоды. Как мне изменить код, чтобы урезать предложения, когда они заканчиваются вопросительными знаками или восклицательными знаками?Усекать предложения в rails?
def smart_truncate(s, opts = {})
opts = {:words => 12}.merge(opts)
if opts[:sentences]
return s.split(/\.(\s|$)+/).reject{ |s| s.strip.empty? }[0, opts[:sentences]].map{|s| s.strip}.join('. ') + '...'
end
a = s.split(/\s/) # or /[ ]+/ to only split on spaces
n = opts[:words]
a[0...n].join(' ') + (a.size > n ? '... (more)' : '')
end
Спасибо !!!
Любая причина не использовать это: http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-truncate –
Рассматривали ли вы с помощью 'truncate', предусмотренных Rails ? –
Я рассматривал использование усечения, но он не подходит моим потребностям. Я использую этот помощник, чтобы дать предварительный просмотр контента, не испортив его (слишком долго), и показывая целую фразу - это то, что я решил. –