Tôi hiển thị các nhận xét gần đây trên trang chủ của một ứng dụng blog rất đơn giản mà tôi đang xây dựng trong Ruby on Rails. Tôi muốn giới hạn số ký tự được hiển thị từ cột 'nội dung' của bảng nhận xét. Tôi giả sử tôi chỉ có thể thêm một cái gì đó vào cuối mã cho <% = h comment.body%> nhưng tôi không biết điều gì sẽ được nêu ra như tôi mới cho cả Ruby và Rails.Giới hạn các ký tự/từ trong chế độ xem - ruby on rails
Đây là mã tôi có trong tập tin /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 -%>
Chỉ cần tò mò (không một người dùng Rails): điều này cũng sẽ hoạt động? <% = h comment.body [0, 80] + "..."%> – steenslag
Đó là khá nhiều những gì cắt ngắn bên dưới, nhưng nó cũng kiểm tra độ dài để biết nếu thêm '...' tại end – Corey
Chỉ muốn thêm rằng truncate không phải là an toàn đa byte (ruby 1.8, đường ray 2.3.5, không chắc chắn về ruby 1.9). Nó cắt ngắn tại byte được chỉ định và nếu bạn có một chuỗi unicode đầu ra sẽ ngắn hơn (ít ký tự hơn độ dài được chỉ định). Bạn cũng có thể kết thúc với một nhân vật bị hỏng ở cuối. Tất nhiên, không có gì phải lo lắng nếu bạn sử dụng ASCII hoặc bất kỳ mã hóa ký tự 8 bit nào khác. – Teoulas