我的模型中有以下方法来裁剪记录的描述,但由于未知原因,截断方法不起作用:
def cropped_description
nb_words_max = 500
if description.length > nb_words_max
truncate(description, :length => nb_words_max, :separator => ' ') + " ..."
else
description
end
end
任何人都能看到我做错了什么?感谢。
答案 0 :(得分:7)
你使用它错了,你应该在String
上调用这个方法。请参阅truncate
的签名。
使用:
if description.length > nb_words_max
description.truncate(nb_words_max, :separator => ' ') + " ..."
else
...
答案 1 :(得分:3)
在rails中包括:
include ActionView::Helpers::TextHelper
但是如果你想用Ruby irb进行测试:
require 'action_view'
include ActionView::Helpers::TextHelper
答案 2 :(得分:1)
您正在寻找的truncate
方法是一个视图助手,因此它不会在您的模型方法中可用,您应该从视图中调用truncate
。此外,如果视图助手将为您添加省略号,那么您只需说:
<%= truncate(m.description, :length => 500, :separator => ' ') %>