Rails 3 - 在控制器中截断?

The*_*xit 18 ruby-on-rails ruby-on-rails-3

在我的控制器中,我正在为书籍构建一个json对象.我想表现出来truncate(book.content, 250).

这在rails控制器中不起作用.鉴于它是一个JSON渲染,我不使用视图.那么如何截断呢?我不希望我的JSON对象变得巨大:)!

谢谢.

mdr*_*iel 37

您可以使用多种方法来完成此任务.最可靠的是在控制器中包含适当的帮助器.在这将是:

class BooksController < ApplicationController
  include ActionView::Helpers::TextHelper
  ...
end
Run Code Online (Sandbox Code Playgroud)

或者,您也可以创建一个部分来生成所需的代码,例如带有正确代码的_truncate.html.erb:

<%= truncate (@book, :length => 250) %>
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中呈现它:

result = render_to_string :partial => 'truncate'
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


cev*_*ris 27

你可以调用truncate rails string方法.

http://apidock.com/rails/String/truncate

"Once upon a time in a world far far away".truncate(27)

@book.content.truncate(250)
Run Code Online (Sandbox Code Playgroud)

不是100%肯定你是否必须包括

include ActionView::Helpers::TextHelper
Run Code Online (Sandbox Code Playgroud)

  • 对我来说这是一个更好的答案 (2认同)