J'essaie de convertir des hashtags en liens à l'intérieur d'un micropost. J'ai implémenté une gemme appelée simple_hashtag qui semble fonctionner pour l'aspect de liaison de ceci. Cependant, la gem fonctionne en extrayant des hashtags de la poste et en les affichant dans leur propre boucle. Ainsi, par exemple, si mon Micropost était:Transformer les hashtags en liens, en rails
Today I went #snowboarding, it was #awesome
Le code pour extraire les balises est fait comme une boucle, ce qui signifie qu'il doit être fait en dehors du contenu.
<p><%= micropost.content %></p>
<ul>
<% micropost.hashtags.each do |hashtag| %>
<li><%= link_to hashtag.name, hashtag_path(hashtag.name) %></li>
<% end %>
</ul>
Cela laisse la vue fini la recherche comme:
Today I went #snowboarding, it was #awesome
- snowboarding
- awesome
Est-il possible d'avoir le code d'analyse du contenu et de remplacer les hashtags les liens en place? Je me demande s'il existe un moyen de collecter les hashtags, de les convertir en liens et de les remplacer dans le contenu?
Je sais que je peux analyser le contenu et trouver les hash en utilisant les éléments suivants:
<% content = micropost.content %>
<% hashes = content.scan(/#\w+/) %>
<% hashes.each do |hash| %>
<%= hash %>
<% end %>
Je voudrais ensuite utiliser quelque chose comme hash.gsub!
ou même Javascript, pour remplacer les hashtags dans le contenu des liens plutôt que les avoir énumérés ci-dessous.
C'était super utile! J'ai dû utiliser .html_safe sur le rendu, car il ne faisait que montrer le html brut. J'ai aussi dû link_to mot au lieu du hashtag.name, et cela signifiait enlever le # avant qu'il ne crée le lien avec> word = word.tr ('#', '') - Mais ça fonctionne comme un charme maintenant! Merci beaucoup pour votre aide Martin – abbott567
Heureux que c'était utile. D'accord, mon code était un peu trop "pseudo code", surtout en ce qui concerne les tags. Bonne capture avec la partie "raw/html_safe", aurait dû l'ajouter. Codage heureux! – Martin