Подтвердить что ты не робот

Rails 3 - Усечь в контроллере?

В моем контроллере я создаю объект json для книг. Я хочу показать truncate(book.content, 250).

Это не работает в контроллере рельсов. И, учитывая его визуализацию JSON, я не использую представление. Итак, как обрезать? Я не хочу, чтобы мой объект JSON был огромным:)!

Спасибо.

4b9b3361

Ответ 1

Вы можете использовать множество способов для этого. Самое приятное - просто включить в контроллер надлежащего помощника. В этом было бы:

class BooksController < ApplicationController
  include ActionView::Helpers::TextHelper
  ...
end

В качестве альтернативы вы также можете создать частичный код, который генерирует необходимый вам код, например _truncate.html.erb с соответствующим кодом:

<%= truncate (@book, :length => 250) %>

И затем визуализируйте его в своем представлении:

result = render_to_string :partial => 'truncate'

Надеюсь, что это поможет.

Ответ 2

Вы можете просто вызвать строковый метод 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