2011-03-22 12 views

Respuesta

29

¿Por qué no usar un enlace y una etiqueta de imagen?

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

También puede probar la Anexión hecho anteriormente (string + image_tag), pero será un error si una de esas cosas se convierte en nil. Con la interpolación, solo mostrará una imagen en blanco (o una cadena) si es nil.

para los carriles 3, tendrá que utilizar html_safe:

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

+1 ¡Pásame! :) – Chirantan

+20

Esto escapará de la etiqueta 'img' en Rails 3 y por lo tanto no funcionará. –

+2

Esto no funciona en Rails 3, la respuesta de @ Fazley a continuación funciona. Debido a la canalización de activos, tampoco es necesario usar imágenes/en el camino. – Narayana

3
link_to(image_tag("image.png", :alt => "alt text", :class =>"anyclass"), image_url) 
+0

funciona para mí =] –

81

Puede utilizar bloques como una alternativa a la interpolación de cadenas con el uso correcto html_safe. Por ejemplo:

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

+1 no era consciente de que podría hacer esto – Hishalv

+0

+1 funciona cuando desea ajustar un lapso & clase alrededor del texto también :) – gef

3

Parece que no puedo encontrar la manera de agregar un comentario a la respuesta de @corroded. Sin embargo, si está utilizando Rails 3, su respuesta no funcionará como se esperaba. Puede que no sea inmediatamente obvio cómo solucionar esto, al menos no fue para mí. Sabía que necesitaba agregar html_safe, pero colóquelo en el lugar equivocado. En retrospectiva, era obvio, pero pensé que lo incluiría aquí para otros como yo que cometieron el error de "novato".

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

tener cuidado sin embargo, si está utilizando una variable asignable para "hiii" que necesita para desinfectar primero.

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

Tenga en cuenta que no hay ningún problema con my_model.some_string o yourimagepath ser cero, puesto que las dos cadenas de retorno h() y image_tag() cuando pasó nula.

31

O un camino más corto es

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

¡Esta es la respuesta correcta! – servatj

0

me enteré de esto también, que funcionaba.

link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank") 
2

prefiero este enfoque en HAML

= link_to root_path do 
    = image_tag "ic_launcher.png", size: "16x16" 
    Home 
1

Aquí está una manera interesante de utilizar un link_to para incluir una imagen y, a href mailto con texto (que se muestra junto a la imagen):

<%= link_to image_tag("image.png") + " [email protected]", 
         href: "mailto:[email protected]" %> 

Dándole algo como esto en su opinión (toda la imagen y el texto convertido en un href mailto):

hyperlinked image and text with mailto

Cuestiones relacionadas