Je veux sortir ce qui suit avec Ruby on Rails link_to
et image_tag
méthodes:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Quel serait un bon moyen dans Rails?
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 effectué ci-dessus (string + image_tag
), mais cela générera une erreur si l'une de ces choses devient nil
. En utilisant l'interpolation, il affichera simplement une image (ou chaîne) vierge si elle est nil
.
Pour Rails 3, vous devrez utiliser html_safe
:
<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>
Vous pouvez utiliser des blocs comme alternative à l'interpolation de chaîne avec une utilisation correcte html_safe
. Par exemple:
<%= link_to '#' do %>
Lorem Ipsum <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>
Ou un moyen plus court est
<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>
link_to(image_tag("image.png", :alt => "alt text", :class =>"anyclass"), image_url)
Je n'arrive pas à comprendre 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 pourrait ne pas être immédiatement évident comment résoudre ce problème, du moins ce n'était pas pour moi. Je savais que j'avais besoin ajouter html_safe, mais le mettre au mauvais endroit. Rétrospectivement, c'était évident, mais je pensais que je l'inclurais ici pour d'autres comme moi qui commettent l'erreur "recrue".
<%= 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 nettoyer.
<%= link_to (h(my_model.some_string) + image_tag(yourimagepath)).html_safe,
"link_path" %>
Notez qu'il n'y a aucun problème avec my_model.some_string ou yourimagepath étant nul car les deux h() et image_tag () renvoient des chaînes une fois passées nil.
Je préfère cette approche en HAML
= link_to root_path do
= image_tag "ic_launcher.png", size: "16x16"
Home
Voici une façon intéressante d'utiliser un link_to pour inclure une image et un mailto href avec du texte (affiché à côté de l'image):
<%= link_to image_tag("image.png") + " [email protected]",
href: "mailto:[email protected]" %>
Vous donnant quelque chose comme ça dans votre vue (l'image et le texte entiers deviennent un mailto href):
j'ai découvert cela aussi qui a fonctionné.
link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank")
Pour moi, cela a très bien fonctionné:
<%= link_to(image_tag(<URL>,style),<URL>) %>