44 votes

link_to image_tag avec texte dans rails

HI , J'ai un code comme

          <a href="#" > hiii <img src="/images/menu-arrow-down.gif"></a>

comment écrire un lien vers la balise image ici

91voto

Kevin Sylvestre Points 15551

Vous pouvez utiliser les blocs comme une alternative à l'interpolation de la chaîne de caractères avec une utilisation correcte. html_safe . Par exemple :

<%= link_to '#' do %>
  hiii <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>

35voto

Fazley Points 201

Ou un moyen plus court est

<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>

34voto

corroded Points 9116

Pourquoi ne pas simplement utiliser un lien vers et une balise d'image ?

<%= link_to "hiii #{image_tag(yourimagepath)}", "link_path" %>

Vous pouvez également essayer l'ajout fait ci-dessus ( string + image_tag ), mais il lancera une erreur si l'une de ces choses devient nil . En utilisant l'interpolation, il affichera simplement une image vide (ou une chaîne de caractères) si c'est le cas. nil .

Pour Rails 3, vous devrez utiliser html_safe :

<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>

4voto

trying_hal9000 Points 1446
link_to(image_tag("image.png", :alt =>  "alt text", :class =>"anyclass"), image_url)

3voto

James Points 129

Je ne parviens pas à trouver comment ajouter un commentaire à la réponse de @corroded. Cependant, si vous utilisez Rails 3, sa réponse ne fonctionnera pas comme prévu. Il se peut que la solution ne soit pas immédiatement évidente, en tout cas elle ne l'était pas pour moi. Je savais que je devais ajouter html_safe mais je l'ai mis au mauvais endroit. En rétrospective, c'était évident, mais j'ai pensé l'inclure ici pour les autres qui, comme moi, font l'erreur du débutant.

<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>

attention cependant, si vous utilisez une variable assignable par l'utilisateur pour "hiii", vous devez d'abord la désinfecter.

<%= link_to (h(my_model.some_string) + image_tag(yourimagepath)).html_safe,
            "link_path" %>

Notez qu'il n'y a pas de problème si mon_modèle.quelque_chose ou votre chemin d'accès à l'image sont nuls, car h() et image_tag() renvoient tous deux des chaînes lorsqu'ils sont passés. néant .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X