Je montre des commentaires récents sur la page d'accueil d'une application de blog très simple que je construis dans Ruby on Rails. Je souhaite limiter le nombre de caractères affichés à partir de la colonne "body" de la table des commentaires. Je suppose que je peux juste ajouter quelque chose à la fin du code pour <% = h comment.body%> mais je ne sais pas ce que ce serait encore car je suis nouveau à la fois Ruby et Rails.Limitation de caractères/mots en vue - ruby on rails
Voici le code que j'ai dans le fichier /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 -%>
curiosité (non un utilisateur de Rails): cela fonctionnerait-il aussi? <% = h comment.body [0, 80] + "..."%> – steenslag
C'est à peu près ce que truncate fait en dessous, mais il vérifie aussi la longueur pour savoir si ajouter "..." au fin – Corey
Je voulais juste ajouter que truncate n'est pas multi-byte sûr (ruby 1.8, rails 2.3.5, pas sûr de ruby 1.9). Il tronque à l'octet spécifié et si vous avez une chaîne unicode, la sortie sera plus courte (moins de caractères que la longueur spécifiée). Vous pourriez aussi vous retrouver avec un personnage brisé à la fin. Bien sûr, il n'y a rien à craindre si vous utilisez ASCII ou tout autre encodage de caractères 8 bits. – Teoulas