Rails 3 - 在控制器中截断?
在我的控制器中,我正在构建书籍的json对象。我想要显示truncate(book.content, 250)
。Rails 3 - 在控制器中截断?
这在轨道控制器中不起作用。鉴于这是一个JSON渲染,我不使用视图。那么如何截断?我不希望我的JSON对象变得很大:)!
谢谢。
您可以使用许多方法来完成此操作。最有说服力的是将适当的帮手包含在控制器中。在这一点,将是:
class BooksController < ApplicationController
include ActionView::Helpers::TextHelper
...
end
另外,您还可以创建一个局部产生你所需要的代码,通过适当的代码示例_truncate.html.erb:
<%= truncate (@book, :length => 250) %>
然后呈现在你的看法:
result = render_to_string :partial => 'truncate'
希望这会有所帮助。
谢谢,我正在做truncate(@book,200),那是错误的...当我使用:长度它的工作?奇怪..你不需要在视图中的长度.. – TheExit 2010-10-27 15:33:04
truncate(@book,200)语法已被弃用一段时间了,正确的方式来使用截断是将选项哈希传递给对象后。我不确定,为什么不推荐使用的方法在视图中而不是在控制器中工作,但您应该坚持使用新的语法。 :-) – mdrozdziel 2010-10-27 20:26:51
您可以直接调用truncate rails字符串方法。
http://apidock.com/rails/String/truncate
"Once upon a time in a world far far away".truncate(27)
@book.content.truncate(250)
不是100%肯定,如果你要包括
include ActionView::Helpers::TextHelper
对我来说这是一个更好的答案 – FireDragon 2014-01-16 21:07:32
这是一个更好的答案,因为你不必包括帮手。它默认为'...',但可以传递省略:'xxx'作为选项。 – hellion 2014-09-15 22:27:33
非常混乱。我想用文本字段构建一个JSON对象,但只显示250个字符...所以我需要截断。但Rails不会让你在视图或模型中截断,所以我在哪里构建JSON对象? – TheExit 2010-10-27 06:36:42