Reputation: 5320
In my controller, I'm building a json object for books. I want to show truncate(book.content, 250)
.
This doesn't work in a rails controller. And given it's a JSON render, I don't use a view. So how does one truncate? I don't want my JSON object to be huge :)!
Upvotes: 19
Views: 9764
Reputation: 5794
You can just call the truncate rails string method.
http://apidock.com/rails/String/truncate
"Once upon a time in a world far far away".truncate(27)
@book.content.truncate(250)
Not 100% sure if you have to include
include ActionView::Helpers::TextHelper
Upvotes: 27
Reputation: 5558
You can use many ways to accomplish this. The most conviniet one would be to just include the proper helper in the controller. In this it would be:
class BooksController < ApplicationController
include ActionView::Helpers::TextHelper
...
end
Alternatively you can also create a partial which generates the code you need, for example _truncate.html.erb with proper code:
<%= truncate (@book, :length => 250) %>
And then render it in your view:
result = render_to_string :partial => 'truncate'
Hope this helps.
Upvotes: 39