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

Ограничение символов/слов - рубин на рельсах

Я показываю последние комментарии на главной странице очень простого приложения для блога, которое я создаю в Ruby on Rails. Я хочу ограничить количество символов, отображаемых в столбце "тело" таблицы комментариев. Я предполагаю, что могу просто добавить что-то в конец кода для <% = h comment.body% > , но я не знаю, что бы это было, поскольку я новичок в Ruby и Rails.

Вот код, который у меня есть в файле /views/posts/index.html.erb:

<% Comment.find(:all, :order => 'created_at DESC', :limit => 5).each do |comment| -%>
    <p>
        <%=h comment.name %> commented on 
        <%= link_to h(comment.post.title), comment.post %><br/>
        <%=h comment.body %>
        <i> <%= time_ago_in_words(comment.created_at) %> ago</i>
    </p>
    <% end -%>
4b9b3361

Ответ 1

Попробуйте обрезать вид помощника

<%=h truncate(comment.body, :length => 80) %>

Ответ 2

Я просто нашел другой способ (если вы не хотите добавлять "..." )

<%= comment.body.first(80) %>

Как сказано в RoR API для строки:

first (limit = 1)

Возвращает первый символ. Если задан предел, возвращает подстроку с начала строки до достижения предельного значения. Если заданный предел больше или равен длине строки, возвращает self.

comment = "1234567890"

comment.first(5)
# => "12345"

comment.first(10)
# => "1234567890"

comment.first(15)
# => "1234567890"

Ответ 3

Если вы используете rails 4.2 или выше, вы можете использовать метод truncate_words.

Например:
"В мире, где все потрясающе". Truncate_words (3)

Вывод: "В мире..."